0

Python turtle, how can i put more moves and figures to one screen?

Python turtle is really intetesting, but how can i put more different shapes to one display screen? For example: star, hexagon etc. And i don't know why my exitonclick() doesn't work, where should i put it? My code: from turtle import * color('blue', 'yellow') begin_fill() while True: forward(200) left(50) if abs (pos()) < 3: break end_fill() done()

22nd Sep 2020, 4:35 PM
Martyna Tomaszewska
Martyna Tomaszewska - avatar
2 Answers
0
I can't answer your exitonclick() question but I can share code for drawing the star and hexagon. Turn at 60 degree angles instead of 50 to make a hexagon: from turtle import * color('blue', 'yellow') begin_fill() while True: forward(100) left(60) if abs (pos()) < 3: break end_fill() done() Here is a star pattern: from turtle import * color('blue', 'yellow') begin_fill() toggle = True while True: forward(50) if toggle: right(120) else: left(60) toggle = not toggle if abs (pos()) < 3: break end_fill() done() In general, I would carefully think about what the turtle needs to do to make the pattern you want and give it a few tries. It might take lots of tries and patience but eventually you can draw anything you can dream. For the exitonclick, I came across this but you likely already saw it: https://stackoverflow.com/questions/41548813/using-turtle-module-exitonclick
23rd Sep 2020, 4:57 AM
Josh Greig
Josh Greig - avatar
0
# You can put more figures to one screen by # using 'if t.heading() == 0:' instead of 'if abs (pos()) < 3:'. # If my understanding isn't too incorrect, # when 'turtle.heading == 0' then the turtle is facing 'east', # the direction it started drawing from. # This has worked for all the angles I've tried so far. # Using 'if t.heading() == 0:' # it's possible to draw figures anywhere on the screen. #===================================== import turtle wn = turtle.Screen() wn.title("Drawing Geometric Shapes") t = turtle.Turtle() t.color('red', 'yellow') t.speed(0) #===================================== def star(x, y, length, angle): t.penup() t.goto(x, y) t.pendown() t.begin_fill() while True: t.forward(length) t.left(angle) if t.heading() == 0: #=============== break t.end_fill() #===================================== # ( x, y, length, angle) star(-470, 300, 100, 120) star( 360, 320, 100, 160) star(-450, -340, 100, 100) star( 360, -340, 100, 170) star(-360, 0, 750, 178) #=====================================
31st Aug 2021, 11:24 AM
Paul