def main(): ''' Draws a 3 by 3 grid of trees. From left to right, the number of iterations of the L-system goes from 1 to 3 and from top to bottom, the angle of the L-system is 22, 40, and 60. ''' my_lsys = ls.init() ls.setBase(my_lsys, 'F') ls.addRule(my_lsys, ['F', 'F FF-[-F+F+F]+[+F-F-F]']) ''' Creates an L system that can draw a tree. ''' x = -400 y0 = 100 for i in range(1, 4): x += 200 turtle.up() turtle.goto(x, y0) turtle.down() for a in (22, 40, 60): if a == 22: y = y0 else: y += -150 turtle.up() turtle.goto(x, y) turtle.down() turtle.setheading(90) lstr = ls.buildString(my_lsys, i) ti.drawString(lstr, 5, a) ti.hold()
def main(argv): '''creates a set of 9 trees based on a lsystem in a 3x3 grid.''' # check if there are enough arguments if len(argv) < 1: print "Usage : python grid.py <in_filename>" exit() lsys_filename = argv[1] # create the lsystems from a file lsys = ls.createLsystemFromFile( lsys_filename ) x = [-200, 0, 200] y = [100, -150, -350] iters = [1, 2, 3] angles = [22, 46, 60] dist = 10 for c in range( len(iters)): for r in range( len(iters)): turtle.up() turtle.speed(300) turtle.goto(x[c], y[r]) turtle.setheading(0) turtle.left(90) s = ls.buildString( lsys, iters[c] ) turtle.down() it.drawString( s, dist, angles[r] ) # wait and update turtle.update() it.hold()
def sun(argv): lsys_filename3 = argv[3] lsys3 = ls.createLsystemFromFile( lsys_filename3 ) print lsys3 num_iter3 = int( 3 ) dist = 5 angle3 = float( 120 ) s3 = ls.buildString( lsys3, num_iter3 ) #draw lsystem3 '''this is my third lsystem with filename mysystem3.txt with 3 iterations and with angle = 45 dist = 10''' turtle.up() turtle.goto(0,0) turtle.goto(300, 200) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Red') it.drawString( s3, dist, angle3 ) # wait and update turtle.update()
def tree1(argv, x, y): lsys_filename1 = argv[1] lsys1 = ls.createLsystemFromFile( lsys_filename1 ) print lsys1 num_iter1 = int( 3 ) dist = float( 5 ) angle1 = float( 22 ) s1 = ls.buildString( lsys1, num_iter1 ) #draw lsystem1 '''this is my first lsystem with filename mysystem1.txt with 3 iterations and with angle = 45 dist = 10''' turtle.tracer(False) turtle.speed(50000000) turtle.up() turtle.goto(0,0) turtle.goto(x, y) turtle.down() turtle.pencolor('White') it.drawString( s1, dist, angle1 ) # wait and update turtle.update()
def tree2(argv, x, y): lsys_filename2 = argv[2] lsys2 = ls.createLsystemFromFile( lsys_filename2 ) print lsys2 num_iter2 = int( 3 ) dist = float( 5 ) angle2 = float( 30 ) s2 = ls.buildString( lsys2, num_iter2 ) #draw lsystem2 '''this is my second lsystem with filename mysystem2.txt with 5 iterations and with angle = 120 dist = 10''' turtle.up() turtle.goto(0,0) turtle.goto(x,y) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('White') it.drawString( s2, dist, angle2 ) # wait and update turtle.update()
def sun(argv): lsys_filename3 = argv[3] lsys3 = ls.createLsystemFromFile(lsys_filename3) print lsys3 num_iter3 = int(3) dist = 5 angle3 = float(120) s3 = ls.buildString(lsys3, num_iter3) #draw lsystem3 '''this is my third lsystem with filename mysystem3.txt with 3 iterations and with angle = 45 dist = 10''' turtle.up() turtle.goto(0, 0) turtle.goto(300, 200) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Red') it.drawString(s3, dist, angle3) # wait and update turtle.update()
def tree1(argv, x, y): lsys_filename1 = argv[1] lsys1 = ls.createLsystemFromFile(lsys_filename1) print lsys1 num_iter1 = int(3) dist = float(5) angle1 = float(22) s1 = ls.buildString(lsys1, num_iter1) #draw lsystem1 '''this is my first lsystem with filename mysystem1.txt with 3 iterations and with angle = 45 dist = 10''' turtle.tracer(False) turtle.speed(50000000) turtle.up() turtle.goto(0, 0) turtle.goto(x, y) turtle.down() turtle.pencolor('Brown') it.drawString(s1, dist, angle1) # wait and update turtle.update()
def tree2(argv, x, y): lsys_filename2 = argv[2] lsys2 = ls.createLsystemFromFile(lsys_filename2) print lsys2 num_iter2 = int(3) dist = float(5) angle2 = float(30) s2 = ls.buildString(lsys2, num_iter2) #draw lsystem2 '''this is my second lsystem with filename mysystem2.txt with 5 iterations and with angle = 120 dist = 10''' turtle.up() turtle.goto(0, 0) turtle.goto(x, y) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('White') it.drawString(s2, dist, angle2) # wait and update turtle.update()
def grid(key, x, y, scale): # create the lsystem from a file lsys = ls.createLsystemFromFile(key) # build the lsystem string with i iterations for i in range(3): lstr = ls.buildString(lsys, i + 1) for j in [22, 46, 60]: angle = float(j) oldheading = turtle.heading() turtle.up() turtle.goto(x, y) turtle.down() turtle.right(270) turtle.color(0.5, 0.6, 0.8) turtle.width(2) it.drawString(lstr, scale * 0.75, angle) turtle.setheading(oldheading) y = y - scale * 30 y = y + scale * 90 x = x + scale * 30 return
def main(): ''' Imports mountain scene from project 3 and adds three equally sized trees, one with red leaves, one with orange leaves, and another one with yellow leaves. The size of the leaves from largest to smallest are red, orange, and yellow. From left to right the trees have red, orange, and yellow leaves. The trees are spaced 200 pixels from each other in the x direction. The branches are brown. ''' bsl.myOtherScene(0, 0, 0.8) ''' Draws mountain scene from Project 3 at 0.8 times its original size ''' my_lsys1 = ls.init() ls.setBase(my_lsys1, 'F') ls.addRule(my_lsys1, ['F', 'F FF-[-F+F+FRB]+[+F-F-FRB]']) ''' Creates L system that draws tree with red leaves and brown branches ''' my_lsys2 = ls.init() ls.setBase(my_lsys2, 'F') ls.addRule(my_lsys2, ['F', 'F FF-[-F+F+FOB]+[+F-F-FOB]']) ''' Creates L system that draws tree with orange leaves and brown branches ''' my_lsys3 = ls.init() ls.setBase(my_lsys3, 'F') ls.addRule(my_lsys3, ['F', 'F FF-[-F+F+FYB]+[+F-F-FYB]']) ''' Creates L system that draws tree with yellow leaves and brown branches. ''' lstr1 = ls.buildString(my_lsys1, 2) lstr2 = ls.buildString(my_lsys2, 2) lstr3 = ls.buildString(my_lsys3, 2) turtle.setheading(90) x = -400 for i in (lstr1, lstr2, lstr3): x += 200 turtle.up() turtle.goto(x, -80) turtle.down() turtle.color("brown") ti.drawString(i, 5, 20) ''' Draws each tree with red, orange, and yellow leaves in that order with the trees spaced 200 pixels apart in the x direction starting at (-400,-80). For each tree, the L-system that makes up each tree is iterated 2 times. ''' ti.hold() #holds the screen open until the user clicks or types 'q'
def abstract(lstr, x, y, scale, angle): oldheading = turtle.heading() turtle.up() turtle.goto(x, y) turtle.down() turtle.right(270) turtle.color(0.5, 0.6, 0.8) turtle.width(2) it.drawString(lstr, scale * 0.75, angle) turtle.setheading(oldheading) return
def makeTree(): # set up the window and turn off tracing turtle.setup(500, 500) turtle.tracer(False) # draw a small symmetric tree turtle.setheading(90) goto(0, 0) s = 'F[+F[+F][-F]][-F[+F][-F]]' turtle.width(3) ti.drawString(s, 50, 30) turtle.width(1) # draw the pot and legs turtle.setheading(0) goto(-50, -100) turtle.color('brown') turtle.begin_fill() ti.drawString('F+' * 4, 100, 90) turtle.end_fill() goto(-50, -100) turtle.color('dark red') turtle.begin_fill() ti.drawString('F' * 10 + '+F+' + 'F' * 10 + '+F+', 10, 90) turtle.end_fill() goto(-60, -120) turtle.begin_fill() ti.drawString('F+' + 'F' * 12 + '+F+' + 'F' * 12 + '+', 10, 90) turtle.end_fill() goto(50, -120) turtle.begin_fill() ti.drawString('F+' + 'F' * 12 + '+F+' + 'F' * 12 + '+', 10, 90) turtle.end_fill() # update and hold ti.hold() return
def makeShapes(): turtle.setup(500, 500) # turn off tracing turtle.tracer(False) # draw a triangle goto( -100, 0) s = 'F+F+F+' turtle.color( 'blue' ) ti.drawString( s, 65, 120 ) # draw a square goto( 0, 0 ) s = 'F+F+F+F+' turtle.color( 'red' ) ti.drawString( s, 50, 90 ) # draw a pentagon goto( 100, 0 ) s = 'F+F+F+F+F+' turtle.color( 'green' ) ti.drawString( s, 40, 72 ) # update the window and hold ti.hold() return
def pair(lstr, x, y, scale, angle): oldheading = turtle.heading() turtle.up() turtle.goto(x, y) turtle.down() turtle.right(270) turtle.color(0.5, 0.6, 0.8) turtle.width(2) it.drawString(lstr, scale * 0.75, angle) turtle.up() turtle.goto(x, y) turtle.down() turtle.color(0.1, 0.2, 0.4) turtle.width(1) turtle.left(135) it.drawString(lstr, scale * 0.4, angle) turtle.setheading(oldheading) return
def main(argv): # check if there are enough arguments if len(argv) < 4: print 'usage: %s <lsystem filename> <distance> <angle>' % (argv[0]) exit() # create the lsystem from a file lsys = ls.createLsystemFromFile(argv[1]) # build the lsystem string with 3 iterations lstr = ls.buildString(lsys, 3) dist = float(argv[2]) angle = float(argv[3]) # draw the lsystem turtle.tracer(False) turtle.left(90) it.drawString(lstr, dist, angle) # wait turtle.update() it.hold()
def main(argv): # check if there are enough arguments if len(argv) < 4: print 'usage: %s <lsystem filename> <distance> <angle>' % (argv[0]) exit() # create the lsystem from a file lsys = ls.createLsystemFromFile( argv[1] ) # build the lsystem string with 3 iterations lstr = ls.buildString( lsys, 3 ) dist = float( argv[2] ) angle = float( argv[3] ) # draw the lsystem turtle.tracer(False) turtle.left(90) it.drawString( lstr, dist, angle ) # wait turtle.update() it.hold()
def main(): ''' Uses L systems to create scene with light blue sky, green grass, a sun in the top right corner, and a tree with brown branches. ''' my_lsys1 = ls.init() ls.setBase(my_lsys1, 'F') ls.addRule(my_lsys1, ['F', 'FF+F+FF+F+']) lstr1 = ls.buildString(my_lsys1, 1) ''' Creates L-system that represents a rectangle that is twice as wide as it is high. Thus, this L-system can draw both a rectangluar light blue sky and green grass since this L-system is iterated once. ''' turtle.up() turtle.goto(-315, -285) turtle.begin_fill() turtle.down() turtle.color('green') ti.drawString(lstr1, 310, 90) turtle.end_fill() ''' Draws rectangular green grass starting at (-315,285) ''' turtle.up() turtle.goto(-315, 25) turtle.begin_fill() turtle.down() turtle.color('lightblue') ti.drawString(lstr1, 310, 90) turtle.end_fill() ''' Draws rectangular light blue sky starting at (-315,25) ''' turtle.up() turtle.goto(250, 180) turtle.begin_fill() turtle.down() turtle.color('yellow') turtle.circle(50) turtle.end_fill() ''' Draws sun at (250,180) ''' my_lsys2 = ls.init() ls.setBase(my_lsys2, 'F') ls.addRule(my_lsys2, ['F', 'F[+F]F[-F][F]']) ''' Creates new L-system that draws a tree with multiple branches at (0,-225) ''' lstr2 = ls.buildString(my_lsys2, 5) turtle.setheading(90) turtle.up() turtle.goto(0, -225) turtle.down() turtle.color("brown") ti.drawString(lstr2, 5, 20) ''' Draws the tree with multiple brown branches starting at (0,-225) and the L-system that makes up the tree is iterated 5 times. ''' ti.hold() #holds the screen open until the user clicks or types 'q'
def main(argv): # check if there are enough arguments if len(argv) < 10: print "Usage : python abstract.py 3*<in_filename> 3*<num_iterations>" exit() # assign lsys_filenames to command line filename arguments lsys_filename1 = argv[1] lsys_filename2 = argv[2] lsys_filename3 = argv[3] # create the lsystems from a file lsys1 = ls.createLsystemFromFile(lsys_filename1) lsys2 = ls.createLsystemFromFile(lsys_filename2) lsys3 = ls.createLsystemFromFile(lsys_filename3) print lsys1 print lsys2 print lsys3 # assign num_interations to command line number arguments num_iter1 = int(argv[4]) num_iter2 = int(argv[5]) num_iter3 = int(argv[6]) # build the lsystem string with given number of iterations s1 = ls.buildString(lsys1, num_iter1) s2 = ls.buildString(lsys2, num_iter2) s3 = ls.buildString(lsys3, num_iter3) print s1 print s2 print s3 # assign distances and angles to given command line inputs dist = float(argv[7]) angle1 = float(argv[8]) angle2 = float(argv[9]) angle3 = float(argv[10]) # draw the lsystems #draw lsystem1 '''this is my first lsystem with filename mysystem1.txt with 3 iterations and with angle = 45 dist = 10''' turtle.tracer(False) turtle.up() turtle.goto(-400, 0) turtle.down() turtle.left(90) turtle.pencolor('Green') it.drawString(s1, dist, angle1) #draw lsystem2 '''this is my second lsystem with filename mysystem2.txt with 5 iterations and with angle = 120 dist = 10''' turtle.up() turtle.goto(0, 0) turtle.goto(0, 0) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Red') it.drawString(s2, dist, angle2) #draw lsystem3 '''this is my third lsystem with filename mysystem3.txt with 3 iterations and with angle = 45 dist = 10''' turtle.up() turtle.goto(0, 0) turtle.goto(300, -100) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Blue') it.drawString(s3, dist, angle3) # wait and update turtle.update() it.hold()
def main(argv): # check if there are enough arguments if len(argv) < 10: print "Usage : python abstract.py 3*<in_filename> 3*<num_iterations>" exit() # assign lsys_filenames to command line filename arguments lsys_filename1 = argv[1] lsys_filename2 = argv[2] lsys_filename3 = argv[3] # create the lsystems from a file lsys1 = ls.createLsystemFromFile( lsys_filename1 ) lsys2 = ls.createLsystemFromFile( lsys_filename2 ) lsys3 = ls.createLsystemFromFile( lsys_filename3 ) print lsys1 print lsys2 print lsys3 # assign num_interations to command line number arguments num_iter1 = int( argv[4] ) num_iter2 = int( argv[5] ) num_iter3 = int( argv[6] ) # build the lsystem string with given number of iterations s1 = ls.buildString( lsys1, num_iter1 ) s2 = ls.buildString( lsys2, num_iter2 ) s3 = ls.buildString( lsys3, num_iter3 ) print s1 print s2 print s3 # assign distances and angles to given command line inputs dist = float( argv[7] ) angle1 = float( argv[8] ) angle2 = float( argv[9] ) angle3 = float( argv[10] ) # draw the lsystems #draw lsystem1 '''this is my first lsystem with filename mysystem1.txt with 3 iterations and with angle = 45 dist = 10''' turtle.tracer(False) turtle.up() turtle.goto(-400, 0) turtle.down() turtle.left(90) turtle.pencolor('Green') it.drawString( s1, dist, angle1 ) #draw lsystem2 '''this is my second lsystem with filename mysystem2.txt with 5 iterations and with angle = 120 dist = 10''' turtle.up() turtle.goto(0,0) turtle.goto(0,0) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Red') it.drawString( s2, dist, angle2 ) #draw lsystem3 '''this is my third lsystem with filename mysystem3.txt with 3 iterations and with angle = 45 dist = 10''' turtle.up() turtle.goto(0,0) turtle.goto(300,-100) turtle.down() turtle.setheading(0) turtle.left(90) turtle.pencolor('Blue') it.drawString( s3, dist, angle3 ) # wait and update turtle.update() it.hold()