Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/gentiles.py
diff options
context:
space:
mode:
Diffstat (limited to 'gentiles.py')
-rwxr-xr-xgentiles.py69
1 files changed, 68 insertions, 1 deletions
diff --git a/gentiles.py b/gentiles.py
index cd08c0e..0cc31bd 100755
--- a/gentiles.py
+++ b/gentiles.py
@@ -13,7 +13,7 @@
# Boston, MA 02111-1307, USA.
import os
-from constants import C
+from constants import C, H, RT, LT
XCOR = ["-188.17646", "11.823541"]
YCOR = ["162.71119", "362.71119"]
@@ -82,6 +82,59 @@ def _svg_footer():
b = '</svg>\n'
return a + b
+def _svg_hex(top, left, right):
+ """ draw a hexagon """
+ a = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'
+ b = '<!-- Created with Python in Emacs -->\n'
+ c = '<svg\n'
+ d = ' xmlns:svg="http://www.w3.org/2000/svg"\n'
+ e = ' xmlns="http://www.w3.org/2000/svg"\n'
+ f = ' version="1.1"\n'
+ g = ' width="202.28767"\n'
+ h = ' height="231.94138"\n'
+ i = ' id="hexagon">\n'
+ j = ' <g transform="translate(-270.9034,-365.15558)">\n'
+ k = ' <path\n'
+ l = ' d="m 272.04724,423.15558 100.55096,-57.5 99.44904,57.5 -100.55096,57.5 -99.44904,-57.5 z"\n'
+ m = ' style="fill:' + top + ';fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />\n'
+ n = ' <path\n'
+ o = ' d="m 371.47534,596.59696 -100.07194,-58.32969 0.0719,-114.87539 100.07194,58.32969 -0.0719,114.87539 z"\n'
+ p = ' style="fill:' + left + '#0000ff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />\n'
+ q = ' <path\n'
+ r = ' d="m 372.61914,596.3201 100.07194,-58.32969 -0.0719,-114.87539 -100.07194,58.32969 0.0719,114.87539 z"\n'
+ s = ' style="fill:' + right + ';fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />\n'
+ t = ' </g>\n'
+ u = '</svg>\n'
+ return a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q +\
+ r + s + t + u
+
+def _svg_triangle(top, bottom, left, flip=False):
+ a = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'
+ b = '<!-- Created with Python in Emacs -->\n'
+ c = '<svg\n'
+ d = ' xmlns:svg="http://www.w3.org/2000/svg"\n'
+ e = ' xmlns="http://www.w3.org/2000/svg"\n'
+ f = ' version="1.1"\n'
+ g = ' id="triange">\n'
+ if flip:
+ h = ' <g transform="matrix(-1,0,0,1,838.68554,-456.19895)">\n'
+ else:
+ h = ' <g transform="translate(-735.12125,-456.19895)">\n'
+ i = ' <g transform="translate(129.81785,111.40982)">\n'
+ j = ' <path\n'
+ k = ' d="m 607.82135,460.38159 98.22306,-54.95995 -65.57024,-0.92468 -32.65282,55.88463 z"\n'
+ l = ' style="fill:' + bottom + ';fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />\n'
+ m = ' <path\n'
+ n = ' d="m 607.3034,460.58514 0,-113.47935 33.29261,56.63592 -33.29261,56.84343 z"\n'
+ o = ' style="fill:' + left + ';fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />'
+ p = ' <path\n'
+ q = ' d="m 706.86769,405.18383 -98.70613,-58.3947 32.3358,57.2359 66.37033,1.1588 z"\n'
+ r = ' style="fill:' + top + ';fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />\n'
+ s = ' </g>\n'
+ t = '</g>\n'
+ u = '</svg>\n'
+ return a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q +\
+ r + s + t + u
def open_file(datapath, filename):
""" Create a file for writing """
@@ -101,6 +154,20 @@ def generator(datapath):
f.write(svg)
f.close()
+ for i, c in enumerate(H):
+ f = open_file(datapath, "hex-%d.svg" % (i))
+ f.write(_svg_hex(c[0], c[1], c[2]))
+ f.close()
+
+ for i, c in enumerate(RT):
+ f = open_file(datapath, "triangle-r-%d.svg" % (i))
+ f.write(_svg_triangle(c[0], c[1], c[2]))
+ f.close()
+
+ for i, c in enumerate(LT):
+ f = open_file(datapath, "triangle-l-%d.svg" % (i))
+ f.write(_svg_triangle(c[0], c[1], c[2], flip=True))
+ f.close()
def main():
""" Command line version for testing """