gpt4 book ai didi

python - 三角形/几何彩虹螺旋

转载 作者:行者123 更新时间:2023-12-01 08:16:48 27 4
gpt4 key购买 nike

我一直在尝试找出如何使用 Python 制作彩虹三角螺旋。我可以制作一个方形螺旋,但它不会导入颜色。而且它不使用三角形。

输出应该是什么样子:

enter image description here

我取得的成就:

enter image description here

我的代码:

    import turtle 
import colorsys

p = turtle.Pen()
p.reset()
p.down()
p.speed(22)


for i in range(100):
p.forward(i)
p.left(22222)

dog = 0

for i in range(100):
color = colorsys.hsv_to_rgb(dog,1,1)
turtle.pencolor(color)
dog += 0.01

最佳答案

让我们检查一下您的代码:

p = turtle.Pen()
p.reset()

reset() 是做什么用的?尚未设置任何内容,为什么要重置?不要添加不会进一步实现您的目标的代码。再次在这里:

p.down()

笔开始时向下,因此无需更换。在此命令中:

p.speed(22)

22 来自哪里? speed() 的文档说它的参数是 1(“最慢”)到 10(“快”),其中 0 表示“最快”。它将 22 转换成其他值——如果您不知道什么,那就不要使用它!为了清楚起见,您应该使用“慢”等象征性替代词。

    p.left(22222)

22222 来自哪里?为什么你会因为没有得到三角形而感到惊讶?对于完美的等边三角形,我们会使用 120 度,但我们不需要完美的三角形,我们想要一个螺旋,所以我们会在该值上添加一到两度。为什么这个变量名:

dog = 0

变量名称应该阐明我们正在做的事情,而不是模糊它。该变量将循环遍历“HSV”颜色值的“H”分量,其中“H”代表“色调”。所以让我们使用它。

最后,我们需要一个循环,而不是两个循环,以便绘图和颜色更改同时发生:

from turtle import Screen, Pen
import colorsys

screen = Screen()
screen.title("Rainbow Spiral")

pen = Pen()
pen.speed('fastest')

hue = 0.0 # range is 0.0 to 1.0

for i in range(200):
color = colorsys.hsv_to_rgb(hue, 1, 1) # pen wants RGB
pen.pencolor(color)
pen.forward(i * 2) # double size
pen.right(121) # 120 degrees is an equilateral triangle
hue += 0.005 # increment by 1/200

pen.hideturtle()

screen.exitonclick()

请注意,我将 left() 更改为 right() 以匹配您的示例螺旋。

输出

enter image description here

程序讲述一个故事。仔细选择角色名称(变量),并避免在故事中包含对其结果没有影响的元素(代码)。

关于python - 三角形/几何彩虹螺旋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54936460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com