如何从乌龟底部旋转形状
How can I rotate a shape from the bottom in turtle
我正在尝试制作一个海龟模拟时钟,并制作秒针、分针、时针我正在用海龟制作一个形状,并使用 .tilt()
使其每秒倾斜 6 度。
问题是,当我 运行 .tilt()
它从中间旋转船,而我想让它从底部旋转(就像一个模拟时钟)。
有没有办法做到这一点,或者我需要找到另一种方法来制作这个程序吗?
这是我的代码:
from turtle import *
import time
turtle = Turtle()
turtle.shape("square")
turtle.shapesize(6, .1)
tilt_amnt = 0
for x in range (60):
turtle.tilt(tilt_amnt)
tilt_amnt = tilt_amnt + 6
time.sleep(1)
我不认为有一种方法可以使乌龟倾斜,使其从底部转向,但您可以重写代码以基本上做同样的事情,但改用前向。看看这个。
from turtle import *
import time
turtle = Turtle()
turtle.pensize(2)
turtle.hideturtle()
turtle.speed(0)
tilt_amnt = 0
for x in range (60):
turtle.right(tilt_amnt)
turtle.forward(100)
turtle.backward(100)
tilt_amnt = tilt_amnt + 6
time.sleep(1)
turtle.clear()
一些想法:首先,我不会使用tilt()
(高开销,强制更新),即使你确实使用海龟作为手,也可以考虑使用right()
或setheading()
;其次,我会使用 mode('logo')
,因为这会使屏幕顶部倾斜 0 度,并使标题 顺时针 (例如,说 'clock')而不是 逆时针;第三,如果你想要准确,不要使用sleep()
,而是从系统中提取当前时间并相应地设置你的手。
现实世界中的大型时钟确实会从 中间 或更具体地说,从重心转动指针。这可以防止指针在上升过程中减慢机制,或在下降过程中加速机制。诀窍是让指针在视觉上看起来不对称,但保持重量对称。这是 a solution I came up with earlier 以海龟为手,从它们的中心转向做类似的事情。
最后,这里重写了@AlexJoslin 提供的示例以使用实时准确性,可能会在一秒钟内多次更新手的位置:
from turtle import Screen, Turtle
from time import localtime as time
def tick():
second.setheading(6 * time().tm_sec)
second.clear()
second.forward(150)
second.backward(150)
screen.update()
screen.ontimer(tick)
screen = Screen()
screen.mode('logo')
screen.tracer(False)
second = Turtle()
second.hideturtle()
second.pensize(2)
tick()
screen.exitonclick()
我正在尝试制作一个海龟模拟时钟,并制作秒针、分针、时针我正在用海龟制作一个形状,并使用 .tilt()
使其每秒倾斜 6 度。
问题是,当我 运行 .tilt()
它从中间旋转船,而我想让它从底部旋转(就像一个模拟时钟)。
有没有办法做到这一点,或者我需要找到另一种方法来制作这个程序吗?
这是我的代码:
from turtle import *
import time
turtle = Turtle()
turtle.shape("square")
turtle.shapesize(6, .1)
tilt_amnt = 0
for x in range (60):
turtle.tilt(tilt_amnt)
tilt_amnt = tilt_amnt + 6
time.sleep(1)
我不认为有一种方法可以使乌龟倾斜,使其从底部转向,但您可以重写代码以基本上做同样的事情,但改用前向。看看这个。
from turtle import *
import time
turtle = Turtle()
turtle.pensize(2)
turtle.hideturtle()
turtle.speed(0)
tilt_amnt = 0
for x in range (60):
turtle.right(tilt_amnt)
turtle.forward(100)
turtle.backward(100)
tilt_amnt = tilt_amnt + 6
time.sleep(1)
turtle.clear()
一些想法:首先,我不会使用tilt()
(高开销,强制更新),即使你确实使用海龟作为手,也可以考虑使用right()
或setheading()
;其次,我会使用 mode('logo')
,因为这会使屏幕顶部倾斜 0 度,并使标题 顺时针 (例如,说 'clock')而不是 逆时针;第三,如果你想要准确,不要使用sleep()
,而是从系统中提取当前时间并相应地设置你的手。
现实世界中的大型时钟确实会从 中间 或更具体地说,从重心转动指针。这可以防止指针在上升过程中减慢机制,或在下降过程中加速机制。诀窍是让指针在视觉上看起来不对称,但保持重量对称。这是 a solution I came up with earlier 以海龟为手,从它们的中心转向做类似的事情。
最后,这里重写了@AlexJoslin 提供的示例以使用实时准确性,可能会在一秒钟内多次更新手的位置:
from turtle import Screen, Turtle
from time import localtime as time
def tick():
second.setheading(6 * time().tm_sec)
second.clear()
second.forward(150)
second.backward(150)
screen.update()
screen.ontimer(tick)
screen = Screen()
screen.mode('logo')
screen.tracer(False)
second = Turtle()
second.hideturtle()
second.pensize(2)
tick()
screen.exitonclick()