def create_arrow_shape(shape_name, length, color): tmp = Turtle() tmp.hideturtle() tmp.color(color) tmp.begin_poly() tmp.setheading(90) tmp.forward(length) tmp.end_poly() p = tmp.get_poly() tmp.clear() screen.register_shape(shape_name, p)
def main(): ## create compound yellow/blue turtleshape for planets global s s = Screen() s.setup(1120,840) s.reset() s.tracer(0, 0) t = Turtle() t.ht() t.pu() t.fd(6) t.lt(90) t.begin_poly() t.circle(6, 180) t.end_poly() m1 = t.get_poly() t.begin_poly() t.circle(6,180) t.end_poly() m2 = t.get_poly() planetshape = Shape("compound") planetshape.addcomponent(m1,"orange") planetshape.addcomponent(m2,"blue") s.register_shape("planet", planetshape) #s.tracer(1,0) s.update() ## setup gravitational system gs = GravSys() sun = Star(1000000, Vec(-250,0), Vec(0,-0.35), gs, "circle") sun.color("yellow") sun.pensize(1.8) sun.pu() earth = Star(5000, Vec(450,0), Vec(0,70), gs, "planet") earth.pencolor("green") earth.shapesize(0.8) rm=12.0583 vm=(8.0*5000/rm)**.5 moon = Star(1, Vec(450+rm,0), Vec(0,70+vm), gs, "planet") moon.pencolor("blue") moon.shapesize(0.5) gs.init() gs.start() return "Done!"
def create_box_shape(shape_name, width, height, border): tmp = Turtle() reverse_width = height reverse_height = width big_rect = build_rect(tmp, reverse_width, reverse_height, 0) small_rect = build_rect(tmp, reverse_width, reverse_height, border) tmp.penup() tmp.hideturtle() tmp.goto(big_rect['top']['x'], big_rect['top']['y']) tmp.pendown() tmp.begin_poly() tmp.goto(big_rect['top']['x'], big_rect['bottom']['y']) tmp.goto(big_rect['bottom']['x'], big_rect['bottom']['y']) tmp.goto(big_rect['bottom']['x'], big_rect['top']['y']) tmp.goto(big_rect['top']['x'], big_rect['top']['y']) tmp.goto(small_rect['top']['x'], small_rect['top']['y']) tmp.goto(small_rect['bottom']['x'], small_rect['top']['y']) tmp.goto(small_rect['bottom']['x'], small_rect['bottom']['y']) tmp.goto(small_rect['top']['x'], small_rect['bottom']['y']) tmp.goto(small_rect['top']['x'], small_rect['top']['y']) tmp.end_poly() p = tmp.get_poly() tmp.reset() tmp.hideturtle() del tmp screen.register_shape(shape_name, p)
def main(): s = Turtle() s.reset() s.getscreen().tracer(0, 0) s.ht() s.pu() s.fd(6) s.lt(90) s.begin_poly() s.circle(6, 180) s.end_poly() m1 = s.get_poly() s.begin_poly() s.circle(6, 180) s.end_poly() m2 = s.get_poly() planetshape = Shape('compound') planetshape.addcomponent(m1, 'orange') planetshape.addcomponent(m2, 'blue') s.getscreen().register_shape('planet', planetshape) s.getscreen().tracer(1, 0) gs = GravSys() sun = Star(1000000, Vec(0, 0), Vec(0, -2.5), gs, 'circle') sun.color('yellow') sun.shapesize(1.8) sun.pu() earth = Star(12500, Vec(210, 0), Vec(0, 195), gs, 'planet') earth.pencolor('green') earth.shapesize(0.8) moon = Star(1, Vec(220, 0), Vec(0, 295), gs, 'planet') moon.pencolor('blue') moon.shapesize(0.5) gs.init() gs.start() return 'Done!'
def main(): ## create compound yellow/blue turtleshape for planets global s s = Screen() s.setup(1120, 840) s.reset() s.tracer(0, 0) t = Turtle() t.ht() t.pu() t.fd(6) t.lt(90) t.begin_poly() t.circle(6, 180) t.end_poly() m1 = t.get_poly() t.begin_poly() t.circle(6, 180) t.end_poly() m2 = t.get_poly() planetshape = Shape("compound") planetshape.addcomponent(m1, "orange") planetshape.addcomponent(m2, "blue") s.register_shape("planet", planetshape) s.update() ## setup gravitational system gs = GravSys() sun = Star(1000000, Vec(-250, 0), Vec(0, -0.35), gs, "circle") sun.color("yellow") sun.pensize(1.8) sun.pu() earth = Star(5000, Vec(450, 0), Vec(0, 70), gs, "planet") earth.pencolor("green") earth.shapesize(0.8) rm = 12.0583 vm = (8.0 * 5000 / rm)**.5 moon = Star(1, Vec(450 + rm, 0), Vec(0, 70 + vm), gs, "planet") moon.pencolor("blue") moon.shapesize(0.5) gs.init() gs.start() s.tracer(True) return "Done!"
def run_1(): t = Turtle() t.pendown() t.fill(255, 165, 0) t.begin_poly() for i in range(40): t.right(25) t.forward(100) t.left(160) t.forward(25) t.end_poly() renderer = PILRenderer() t.render(renderer) renderer.show()
def create_raise_sector_shape(shape_name, radius, extent, width=10): tmp = Turtle() tmp.hideturtle() tmp.setheading(90) tmp.begin_poly() tmp.circle(radius, extent=extent) tmp.end_poly() p1 = tmp.get_poly() tmp.reset() tmp.setheading(90) tmp.setx(-width) tmp.begin_poly() tmp.circle(radius - width, extent=extent) tmp.end_poly() p2 = tmp.get_poly() tmp.reset() p3 = p1 + p2[::-1] screen.register_shape(shape_name, p3)
def createPlanetShape(): s.tracer(0,0) t = Turtle() t.ht() t.pu() t.fd(6) t.lt(90) t.begin_poly() t.circle(6, 180) t.end_poly() m1 = t.get_poly() t.begin_poly() t.circle(6,180) t.end_poly() m2 = t.get_poly() planetshape = Shape("compound") planetshape.addcomponent(m1,"orange") planetshape.addcomponent(m2,"blue") s.register_shape("planet", planetshape) s.tracer(True,0)
def get_rectangle_poly(width, height): tmp = Turtle() reverse_width = height reverse_height = width rect = build_rect(tmp, reverse_width, reverse_height, 0) tmp.penup() tmp.hideturtle() tmp.goto(rect['top']['x'], rect['top']['y']) tmp.pendown() tmp.begin_poly() tmp.goto(rect['top']['x'], rect['bottom']['y']) tmp.goto(rect['bottom']['x'], rect['bottom']['y']) tmp.goto(rect['bottom']['x'], rect['top']['y']) tmp.goto(rect['top']['x'], rect['top']['y']) tmp.end_poly() p = tmp.get_poly() tmp.reset() tmp.hideturtle() del tmp return p
def main(): s = Turtle() s.reset() s.getscreen().tracer(0,0) s.ht() s.pu() s.fd(6) s.lt(90) s.begin_poly() s.circle(6, 180) s.end_poly() m1 = s.get_poly() s.begin_poly() s.circle(6,180) s.end_poly() m2 = s.get_poly() planetshape = Shape("compound") planetshape.addcomponent(m1,"orange") planetshape.addcomponent(m2,"blue") s.getscreen().register_shape("planet", planetshape) s.getscreen().tracer(1,0) ## setup gravitational system gs = GravSys() sun = Star(1000000, Vec(0,0), Vec(0,-2.5), gs, "circle") sun.color("yellow") sun.shapesize(1.8) sun.pu() earth = Star(12500, Vec(210,0), Vec(0,195), gs, "planet") earth.pencolor("green") earth.shapesize(0.8) moon = Star(1, Vec(220,0), Vec(0,295), gs, "planet") moon.pencolor("blue") moon.shapesize(0.5) gs.init() gs.start() return "Done!"
def run_2(): t = Turtle() t.pendown() for i in range(18): t.begin_poly() t.fill(randint(100, 255), 0, randint(100, 255)) t.forward(25) t.right(15) t.forward(25) t.right(165) t.forward(25) t.right(15) t.forward(25) t.right(25) t.end_poly() renderer = PILRenderer() t.render(renderer) renderer.show()
predefined_shapes = ['arrow', 'turtle', 'circle', 'square', 'triangle', 'classic'] turtles = [] for index, shape in enumerate(predefined_shapes): turtle = Turtle() turtle.penup() turtle.sety(gap*index) turtle.shape(shape) turtles.append(turtle) t = Turtle() t.home() t.left(150) t.begin_poly() for i in range(1, 4): t.fd(20) t.right(60) t.fd(20) t.left(300) t.setheading(90) t.speed(1) t.fd(20) t.right(60) t.fd(20) t.left(120) t.fd(20) t.left(60) t.fd(20)