Example #1
0
def interpret_Lsytem2(path, forward=7, angle=60, filename=''):
# goes through the path and draws 

    turtle = Turtle(filename)
    turtle.left(90)
    states = []
    instr  = { 'A' : ['forward', forward],
               'F' : ['forward', forward],
               'B' : ['forward', forward],
               'x' : ['forward', 0],
               'y' : ['forward', 0],
               '-' : ['left', angle],
               '+' : ['right', angle]}

    for step in path:
        if step == '[':
            states.append(turtle.serialize())
        elif step == ']':
            #state = states.pop()
            turtle.deserialize(states.pop())
        else:
            getattr(turtle, instr[step][0])( instr[step][1])

    if filename:
        turtle.save()

    return
Example #2
0
def interpret_Lsytem(path, forward=7, angle=60, filename='', ignore = None):
    """
    @param turtle The turtle to guide
    @param dist   Distance to be made with each 'forward'
    @param angle  Angle for 'left' and 'right'
    """
    turtle = Turtle(filename)
    turtle.left(180)

    if ignore == None: ignore = []
    stack = []

    for c in path:
        if c == '+':
            turtle.right(angle)
        elif c == '-':
            turtle.left(angle)
        elif c == '[':
            stack.append(turtle.serialize())
        elif c == ']':
            turtle.deserialize(stack.pop())
        elif c not in ignore:
            turtle.forward(forward)

    if filename:
        turtle.save()

    return
Example #3
0
def polycircle(n=12):
    t = Turtle('polycircle')

    for x in xrange(n):
        t.polygon(n, 20)
        t.left(360/n)
    t.save()
Example #4
0
def triangles(side=100, step=20, n=10):
	t = Turtle('triangles')
	d = 300

	for i in xrange(n):
		side += (3*step)

		t.polygon(3, side)
		t.right(120)
		t.pen_up()
		t.forward(step)
		t.left(120)
		t.back(step)
		t.pen_down()
	t.save()
Example #5
0
def squares(max_levels = 15):

	t = Turtle('squares')
	d = 300

	for i in range(max_levels):
	    for i in range(4):
		t.forward(d)
		t.right(90)

	    t.forward(d/4)
	    t.right(90/5)

	    d = sqrt((d/4)**2 + (d - d/4)**2)

	t.save()
Example #6
0
File: kvet.py Project: durcak/v122
from Turtle import Turtle
import math

turtle = Turtle('kvet')


def step(dist, depth):
    if depth == 0: return

    turtle.forward(dist)

    turtle.left(45)
    step(2 * dist // 3, depth - 1)

    turtle.right(90)
    step(2 * dist // 3, depth - 1)

    turtle.left(45)
    turtle.pen_up()
    turtle.back(dist)
    turtle.pen_down()


turtle.left(180)
step(100, 7)

turtle.save()
Example #7
0
from Turtle import Turtle

turtl = Turtle('c_hilbert')


def step(angle=90, dist=10, level=5):
    if level == 0:
        return

    turtl.right(angle)
    step(-angle, dist, level - 1)
    turtl.forward(dist)
    turtl.left(angle)
    step(angle, dist, level - 1)
    turtl.forward(dist)
    step(angle, dist, level - 1)
    turtl.left(angle)
    turtl.forward(dist)
    step(-angle, dist, level - 1)
    turtl.right(angle)


step(90, 15, 5)

turtl.save()
Example #8
0
from Turtle import Turtle

turtl = Turtle('c_hilbert')


def step(angle = 90, dist = 10, level = 5):
    if level == 0:
        return

    turtl.right(angle)
    step(-angle, dist, level - 1)
    turtl.forward(dist)
    turtl.left(angle)
    step(angle, dist, level - 1)
    turtl.forward(dist)
    step(angle, dist, level - 1)
    turtl.left(angle)
    turtl.forward(dist)
    step(-angle, dist, level - 1)
    turtl.right(angle)

step(90,15, 5)

turtl.save()
Example #9
0
File: kvet.py Project: durcak/v122
from Turtle import Turtle
import math

turtle = Turtle('kvet')

def step(dist, depth):
    if depth == 0: return

    turtle.forward(dist)

    turtle.left(45)
    step(2*dist//3, depth - 1)

    turtle.right(90)
    step(2*dist//3, depth - 1)

    turtle.left(45)
    turtle.pen_up()
    turtle.back(dist)
    turtle.pen_down()


turtle.left(180)
step(100, 7)

turtle.save()