Browse Source

svg line with some attributes ok

Bachir Soussi Chiadmi 7 years ago
parent
commit
01f0a762e3
1 changed files with 36 additions and 13 deletions
  1. 36 13
      mapgen.py

+ 36 - 13
mapgen.py

@@ -7,6 +7,9 @@ import os, glob, errno
 import math, random
 from PIL import Image, ImageDraw
 import svgwrite
+import datetime
+
+
 
 def generatePolygon( ctrX, ctrY, aveRadius, irregularity, spikeyness, numVerts ) :
    '''Start with the centre of the polygon at ctrX, ctrY,
@@ -61,22 +64,28 @@ def clip(x, min, max) :
    elif( x > max ) :  return max
    else :             return x
 
+
+
 # create maps export folder
-directory = "maps"
+base = "maps"
+now = datetime.datetime.now()
+now = now.strftime("%Y-%m-%d_%X")
+print(now)
+directory = base + "/" + now
 try:
    os.makedirs(directory)
 except OSError as exception:
    if exception.errno != errno.EEXIST:
       raise
-# remove old image
-# os.chdir(directory)
-# files=glob.glob('*')
-# for filename in files:
-#     os.unlink(filename)
 
-for i in range(0, 1):
 
-   verts = generatePolygon( ctrX=500, ctrY=500, aveRadius=300, irregularity=1, spikeyness=0.15, numVerts=13 )
+
+
+
+for i in range(0, 99):
+
+   nv = random.randint(10,20)
+   verts = generatePolygon( ctrX=500, ctrY=500, aveRadius=300, irregularity=1, spikeyness=0.15, numVerts=nv )
 
    index = str(i) if i > 9 else '0'+str(i)
 
@@ -88,14 +97,28 @@ for i in range(0, 1):
 
    svg = svgwrite.Drawing(filename = directory+"/map"+index+".svg",size = ("1000px", "1000px"))
 
-   print(len(verts))
+   # print(len(verts))
    for v in range(0, len(verts)):
-      print('---- '+str(v)+' ----')
-      # p1 = verts[v]
-      # p2 = verts[0] if v >= len(verts) else verts[v+1];
+      # print('---- '+str(v)+' ----')
+      p1 = verts[v]
+      p2 = verts[0] if v >= len(verts)-1 else verts[v+1];
       # print(p1)
       # print(p2)
-      # svg.add(svg.line(p1, p2))
+
+      if random.randint(0,10) > 8:
+         sda = "4 4"
+         sdo = "5"
+      else:
+         sda = "0 0"
+         sdo = "0"
+
+      line = svg.line(p1, p2,
+         stroke_width = "2",
+         stroke = "black",
+         stroke_linecap = "round",
+         stroke_dasharray = sda,
+         stroke_dashoffset = sdo)
+      svg.add(line)
 
    svg.save()