我正在尝试绘制一条彩虹直线,但无法弄清楚turtle.pencolor()
中RGB值随时间变化的方式...
我尝试使用从000000
到FFFFFF
的十六进制增量,但是在得到无效的颜色值之前,我遇到了黑色到绿色的线循环。
答案 0 :(得分:1)
我的猜测是,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()
在这里,我们只是基于角度调整色调,并保持饱和度和 value 不变:
答案 1 :(得分:0)
另外,如果你更没有耐心,你可以将海龟模块的“tracer”函数设置为(0, 0)
例如。 t.tracer(0, 0)
这将使绘图立即出现。
t.tracer(20, 0)
将使海龟超速但仍然有一些动画
如果使用此方法,最后还需要 t.update()
。