All pastes #298550 Raw Edit

flowsnake.py

public text v1 · immutable
#298550 ·published 2007-01-01 01:13 UTC
rendered paste body

from math import sqrt
def flowsnake( level, startX, startY, endX, endY ):

  if level == 0:
    print"g1 f10 x", endX, "y", endY
    #print "g1 x%f y%f z%f f20" % (x,y)
  else:
    p1X = ((startX * 2 + endX)/3)
    p1Y = ((startY * 2 + endY)/3)

    p2X = ((startX + endX)/2 + (endY - startY)/(sqrt(12.0)))
    p2Y = ((startY + endY)/2 - (endX - startX)/(sqrt(12.0)))

    p3X = ((startX + 2 * endX)/3)
    p3Y = ((startY + 2 * endY)/3)

    flowsnake ((level-1), startX, startY, p1X, p1Y)
    flowsnake ((level-1), p1X, p1Y, p2X, p2Y,)
    flowsnake ((level-1), p2X, p2Y, p3X, p3Y,)
    flowsnake ((level-1), p3X, p3Y, endX, endY,)

print "S1M3"
print "g0 z1"
print "g0 x.25 y1.0"
print "g1 f10 z0"
level = 5
flowsnake (level, .25, 1.0, 3.75, 1.0)
flowsnake (level, 3.75, 1.0, 2.0, 3.95)
flowsnake (level, 2.0, 3.95, .25, 1.0)
print "g0 z1"
print "M5"