【问题标题】:How can I cycle colors using turtle module in python?如何在 python 中使用 turtle 模块循环颜色?
【发布时间】:2019-07-04 02:51:56
【问题描述】:

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

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

【问题讨论】:

    标签: python colors turtle-graphics


    【解决方案1】:

    我的猜测是 Python turtle 的基于 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()
    

    这里我们只是根据角度调整hue,并让saturationvalue保持不变:

    【讨论】:

      【解决方案2】:

      另外,如果你的耐心不够,可以将turtle模块的“tracer”函数设置为(0, 0)

      例如。 t.tracer(0, 0)

      这将使绘图立即出现。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-15
        相关资源
        最近更新 更多