3 # Compose each piece SVG with numbers
4 # https://travishorn.com/removing-parts-of-shapes-in-svg-b539a89e5649
5 # https://developer.mozilla.org/fr/docs/Web/SVG/Tutoriel/Paths
7 preamble
= """<?xml version="1.0" encoding="UTF-8" ?>
8 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
9 <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="230" height="230">
12 <rect x="0" y="0" width="230" height="230" fill="white"/>
13 <rect x="130" y="0" width="90" height="230"/>
17 black_left
= '<circle cx="115" cy="115" r="100" fill="black" stroke="orange" mask="url(#stripe)"/>'
18 white_right
= '<circle cx="115" cy="115" r="100" fill="whitesmoke"/>'
19 white_left
= '<circle cx="115" cy="115" r="100" fill="whitesmoke" stroke="orange" mask="url(#stripe)"/>'
20 black_right
= '<circle cx="115" cy="115" r="100" fill="black"/>'
25 '<path d="M90,95 v40"',
27 '<path d="M70,95 h20 v20 h-20 v20 h20"',
29 '<path d="M70,95 h20 v20 h-20 M90,115 v20 h-20"',
31 '<path d="M70,95 v20 h20 v20 M90,95 v20"',
33 '<path d="M90,95 h-20 v20 h20 v20 h-20"',
35 '<path d="M90,95 h-20 v40 h20 v-20 h-20"',
37 '<path d="M70,95 h20 v40"',
39 '<path d="M70,95 h20 v40 h-20 z M70,115 h20"',
41 '<path d="M70,135 h20 v-40 h-20 v20 h20"',
43 '<path d="M60,95 v40 M70,95 h20 v40 h-20 v-40"',
45 '<path d="M60,95 v40 M90,95 v40"',
47 '<path d="M60,95 v40 M70,95 h20 v20 h-20 M90,115 v20 h-20"'
51 '<path d="M180,95 v40"',
53 '<path d="M160,95 h20 v20 h-20 v20 h20"',
55 '<path d="M160,95 h20 v20 h-20 M180,115 v20 h-20"',
57 '<path d="M160,95 v20 h20 v20 M180,95 v20"',
59 '<path d="M180,95 h-20 v20 h20 v20 h-20"',
61 '<path d="M180,95 h-20 v40 h20 v-20 h-20"',
63 '<path d="M160,95 h20 v40"',
65 '<path d="M160,95 h20 v40 h-20 z M160,115 h20"',
67 '<path d="M160,135 h20 v-40 h-20 v20 h20"',
69 '<path d="M150,95 v40 M160,95 h20 v40 h-20 v-40"',
71 '<path d="M150,95 v40 M180,95 v40"',
73 '<path d="M150,95 v40 M160,95 h20 v20 h-20 M180,115 v20 h-20"'
79 for colorLeft
in ["white", "black"]:
80 chrShift
= 0 if colorLeft
== "white" else 32
81 for left
in range(12):
82 for right
in range(12):
83 filename
= chr(65 + left
+ chrShift
) + chr(65 + right
+ chrShift
) + ".svg"
84 f
= open(filename
, "w")
87 f
.write(black_right
if colorLeft
== "white" else white_right
)
89 f
.write(white_left
if colorLeft
== "white" else black_left
)
91 f
.write(digits
["left"][left
] + ' fill="none" stroke-width="4" ' + ('stroke="red"' if colorLeft
== "white" else 'stroke="orange"') + '/>')
93 f
.write(digits
["right"][right
] + ' fill="none" stroke-width="4" ' + ('stroke="red"' if colorLeft
== "black" else 'stroke="orange"') + '/>')