如何在 python 中使用 turtle 模块循环颜色?

How can I cycle colors using turtle module in python?

我正在尝试制作一条彩虹直线,但无法弄清楚 turtle.pencolor() 中的 RGB 值应该如何随时间变化...

我尝试使用从 000000FFFFFF 的十六进制增量,但在获得无效颜色值之前我得到了一个黑色到绿色的循环线。

我的猜测是 Python 乌龟的基于 RGB 的颜色不是很容易生成彩虹线的错误模型。幸运的是,您可以 import colorsys 使用更合适的模型,例如 HSV,并将这些值转换为 RGB:

from turtle import Screen, Turtle
from colorsys import hsv_to_rgb

RADIUS = 300
WIDTH = 100

screen = Screen()

turtle = Turtle(visible=False)
turtle.speed('fastest')  # because I have no patience
turtle.width(WIDTH)

turtle.penup()
turtle.sety(-RADIUS)
turtle.pendown()

for angle in range(360):
    turtle.pencolor(hsv_to_rgb(angle / 360, 0.75, 0.75))
    turtle.circle(RADIUS, 1)

screen.exitonclick()

这里我们只是根据角度调整色相并保留饱和度常数:

另外,如果你没有耐心,可以将turtle模块的“tracer”功能设置为(0, 0)

例如。 t.tracer(0, 0)

这将使绘图立即出现。

t.tracer(20, 0) 将使乌龟超速行驶但仍带有一些动画

如果你使用这种方法,最后还需要t.update()