如何在turtle to Move中制作图形?
How to make a graphic in turtle to Move?
我在 turtle 中做了这样的图形:
from turtle import *
from random import randint
left(20)
speed("fastest")
for i in range(36):
left(120)
fd(100)
left(120)
fd(100)
left(120)
fd(100)
left(10)
它是这样的:
现在如何让三角圆旋转?比如我要拖它,我要它旋转。
how to make the triangle-circle rotate?
通过反复清空重绘,趁着没人看,稍微旋转一下:
from turtle import *
def rotate():
clear()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
update()
left(1)
ontimer(rotate, 60)
left(20)
tracer(False)
rotate()
exitonclick()
此代码很脆弱,因为除 update()
本身外,有几个操作可能会导致屏幕更新,因此重新排列代码或替换其他方法(例如 undo()
)可能不会产生影响你想要的。
I want to drag it
这比较棘手,您获得的结果可能取决于您的体系结构(Unix 或 Windows。)我们会将其制作成可拖动的光标。但是游标将它们的多边形视为已填充。因此,根据底层 Tk 实现,您的结果可能会有所不同。很多。
from turtle import *
def graphic():
penup()
tracer(False)
begin_poly()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
end_poly()
tracer(True)
pendown()
return get_poly()
def drag_handler(x, y):
ondrag(None)
goto(x, y)
ondrag(drag_handler)
register_shape('graphic', graphic())
ondrag(drag_handler)
shape('graphic')
color('black', 'white')
mainloop()
我担心 Windows 这个光标可能看起来只是一个大的黑色斑点。
I want to drag it, and I want it to rotate
我想把它留作 reader 的练习。但无论如何:
from turtle import *
def rotate():
left(1)
ontimer(rotate, 60)
def graphic():
penup()
tracer(False)
begin_poly()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
end_poly()
tracer(True)
pendown()
return get_poly()
def drag_handler(x, y):
ondrag(None)
goto(x, y)
ondrag(drag_handler)
register_shape('graphic', graphic())
ondrag(drag_handler)
shape('graphic')
color('black', 'white')
rotate()
mainloop()
同样,根据环境的不同,您可能正在拖动一个大的、旋转的黑色斑点。现在图形图像是光标,旋转部分很多简单。
我在 turtle 中做了这样的图形:
from turtle import *
from random import randint
left(20)
speed("fastest")
for i in range(36):
left(120)
fd(100)
left(120)
fd(100)
left(120)
fd(100)
left(10)
它是这样的:
现在如何让三角圆旋转?比如我要拖它,我要它旋转。
how to make the triangle-circle rotate?
通过反复清空重绘,趁着没人看,稍微旋转一下:
from turtle import *
def rotate():
clear()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
update()
left(1)
ontimer(rotate, 60)
left(20)
tracer(False)
rotate()
exitonclick()
此代码很脆弱,因为除 update()
本身外,有几个操作可能会导致屏幕更新,因此重新排列代码或替换其他方法(例如 undo()
)可能不会产生影响你想要的。
I want to drag it
这比较棘手,您获得的结果可能取决于您的体系结构(Unix 或 Windows。)我们会将其制作成可拖动的光标。但是游标将它们的多边形视为已填充。因此,根据底层 Tk 实现,您的结果可能会有所不同。很多。
from turtle import *
def graphic():
penup()
tracer(False)
begin_poly()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
end_poly()
tracer(True)
pendown()
return get_poly()
def drag_handler(x, y):
ondrag(None)
goto(x, y)
ondrag(drag_handler)
register_shape('graphic', graphic())
ondrag(drag_handler)
shape('graphic')
color('black', 'white')
mainloop()
我担心 Windows 这个光标可能看起来只是一个大的黑色斑点。
I want to drag it, and I want it to rotate
我想把它留作 reader 的练习。但无论如何:
from turtle import *
def rotate():
left(1)
ontimer(rotate, 60)
def graphic():
penup()
tracer(False)
begin_poly()
for _ in range(36):
for _ in range(3):
left(120)
fd(100)
left(10)
end_poly()
tracer(True)
pendown()
return get_poly()
def drag_handler(x, y):
ondrag(None)
goto(x, y)
ondrag(drag_handler)
register_shape('graphic', graphic())
ondrag(drag_handler)
shape('graphic')
color('black', 'white')
rotate()
mainloop()
同样,根据环境的不同,您可能正在拖动一个大的、旋转的黑色斑点。现在图形图像是光标,旋转部分很多简单。