我刚开始使用pythons Turtle图形模块,而我遇到的问题不是Turtle本身我不认为,而是我的算法样式。我正在使用window.colormode(255),当我在程序中从红色迭代到蓝色时,它很棒并且工作得很好,递增蓝色变量并在每个循环中递减红色变量。
我遇到的问题是我的过滤器应该反转颜色增量器/减量器的顺序(一旦r = 0且b = 255,我想从蓝色变回红色):
以下是要绘制的代码:
counter = 1
firstlength = 1
secondlength = 1
thirdlength = 1
fourthlength = 1
fifthlength = 1
colorList = [255,0,0] # r g b
f = 0 # index for colorlist
for i in listOfTurtles:
i = turtle.Turtle()
i.pencolor(colorList[0], colorList[1], colorList[2])
i.speed(0) # no turn animations
i.left(counter)
i.forward(firstlength)
i.left(15)
i.forward(secondlength)
i.left(15)
i.forward(thirdlength)
i.left(15)
i.forward(fourthlength)
i.left(15)
i.forward(fifthlength)
counter += 1
firstlength += .1
secondlength += .11
thirdlength += .12
fourthlength += .13
fifthlength += .14
这是迭代笔颜色的问题(使用下面的答案):
blueUp = True
if blueUp == True:
colorList[0] -= 1
colorList[2] += 1
if colorList[0] <= 1:
blueUp = False
else:
colorList[0] += 1
colorList[2] -= 1
if colorList[2] <= 0:
blueUp = True
但是,我设置的这个滤镜在需要时不会翻转颜色增量器/减量器;从而导致“错误的颜色序列错误:(-1,0,256)
所以我知道它增加了我的蓝色1位数太高,而我的红色在第一次通过时太低然后错误输出,但我不确定如何解决它。我玩过&gt;价值并使它们更高(赶上5或250左右),但我没有得到结果。
我完全不同意这种写法,因为我确信我已经想出了解决这个问题的最糟糕的方法。
答案 0 :(得分:0)
首先,你应该改变这个:
if blueUp == False:
if colorsList[2] > 0:
到此:
if blueUp == False:
if colorList[2] > 1:
答案 1 :(得分:0)