Python 3.x 如何使用循环将100种颜色添加到海龟图形设计代码中

Python 3.x 如何使用循环将100种颜色添加到海龟图形设计代码中,python-3.x,colors,turtle-graphics,Python 3.x,Colors,Turtle Graphics,我试图为一个任务生成从暗到亮的渐变色效果,或者改变色调,但是我很难弄清楚如何为运行100种不同颜色的RGB颜色输入循环代码 有人能给我一些关于如何循环通过许多不同颜色的建议吗 以下是我目前掌握的代码: import turtle turtle.setup(width=600, height=500) turtle.bgcolor("blue") turtle.reset() turtle.hideturtle() turtle.speed(0) for i in range(

我试图为一个任务生成从暗到亮的渐变色效果,或者改变色调,但是我很难弄清楚如何为运行100种不同颜色的RGB颜色输入循环代码

有人能给我一些关于如何循环通过许多不同颜色的建议吗

以下是我目前掌握的代码:

import turtle
turtle.setup(width=600, height=500)
turtle.bgcolor("blue")
turtle.reset()
turtle.hideturtle()
turtle.speed(0)
for i in range(1000):
    turtle.forward(i)
    turtle.right(98)

turtle.exitonclick()

注:我想如果我能得到一些关于如何制作颜色的帮助,我可能应该首先拿出
BGCOLOR

创建一个包含100种不同颜色的列表。每种颜色都应该是一个RGB元组,范围从零到一。有很多方法可以做到这一点,但我只是手工输入我最喜欢的颜色

colors = [
#reddish colors
(1.00, 0.00, 0.00),(1.00, 0.03, 0.00),(1.00, 0.05, 0.00),(1.00, 0.07, 0.00),(1.00, 0.10, 0.00),(1.00, 0.12, 0.00),(1.00, 0.15, 0.00),(1.00, 0.17, 0.00),(1.00, 0.20, 0.00),(1.00, 0.23, 0.00),(1.00, 0.25, 0.00),(1.00, 0.28, 0.00),(1.00, 0.30, 0.00),(1.00, 0.33, 0.00),(1.00, 0.35, 0.00),(1.00, 0.38, 0.00),(1.00, 0.40, 0.00),(1.00, 0.42, 0.00),(1.00, 0.45, 0.00),(1.00, 0.47, 0.00),
#orangey colors
(1.00, 0.50, 0.00),(1.00, 0.53, 0.00),(1.00, 0.55, 0.00),(1.00, 0.57, 0.00),(1.00, 0.60, 0.00),(1.00, 0.62, 0.00),(1.00, 0.65, 0.00),(1.00, 0.68, 0.00),(1.00, 0.70, 0.00),(1.00, 0.72, 0.00),(1.00, 0.75, 0.00),(1.00, 0.78, 0.00),(1.00, 0.80, 0.00),(1.00, 0.82, 0.00),(1.00, 0.85, 0.00),(1.00, 0.88, 0.00),(1.00, 0.90, 0.00),(1.00, 0.93, 0.00),(1.00, 0.95, 0.00),(1.00, 0.97, 0.00),
#yellowy colors
(1.00, 1.00, 0.00),(0.95, 1.00, 0.00),(0.90, 1.00, 0.00),(0.85, 1.00, 0.00),(0.80, 1.00, 0.00),(0.75, 1.00, 0.00),(0.70, 1.00, 0.00),(0.65, 1.00, 0.00),(0.60, 1.00, 0.00),(0.55, 1.00, 0.00),(0.50, 1.00, 0.00),(0.45, 1.00, 0.00),(0.40, 1.00, 0.00),(0.35, 1.00, 0.00),(0.30, 1.00, 0.00),(0.25, 1.00, 0.00),(0.20, 1.00, 0.00),(0.15, 1.00, 0.00),(0.10, 1.00, 0.00),(0.05, 1.00, 0.00),
#greenish colors
(0.00, 1.00, 0.00),(0.00, 0.95, 0.05),(0.00, 0.90, 0.10),(0.00, 0.85, 0.15),(0.00, 0.80, 0.20),(0.00, 0.75, 0.25),(0.00, 0.70, 0.30),(0.00, 0.65, 0.35),(0.00, 0.60, 0.40),(0.00, 0.55, 0.45),(0.00, 0.50, 0.50),(0.00, 0.45, 0.55),(0.00, 0.40, 0.60),(0.00, 0.35, 0.65),(0.00, 0.30, 0.70),(0.00, 0.25, 0.75),(0.00, 0.20, 0.80),(0.00, 0.15, 0.85),(0.00, 0.10, 0.90),(0.00, 0.05, 0.95),
#blueish colors
(0.00, 0.00, 1.00),(0.05, 0.00, 1.00),(0.10, 0.00, 1.00),(0.15, 0.00, 1.00),(0.20, 0.00, 1.00),(0.25, 0.00, 1.00),(0.30, 0.00, 1.00),(0.35, 0.00, 1.00),(0.40, 0.00, 1.00),(0.45, 0.00, 1.00),(0.50, 0.00, 1.00),(0.55, 0.00, 1.00),(0.60, 0.00, 1.00),(0.65, 0.00, 1.00),(0.70, 0.00, 1.00),(0.75, 0.00, 1.00),(0.80, 0.00, 1.00),(0.85, 0.00, 1.00),(0.90, 0.00, 1.00),(0.95, 0.00, 1.00)
]
然后,在循环中,从列表中选择一种颜色。您需要将从0到999的i转换为从0到列表大小的索引。这最容易通过除以10并转换为整数来实现。然后可以使用
turtle.color
设置海龟的颜色

for i in range(1000):
    idx = int(i/10)
    color = colors[idx]
    turtle.color(color)
    turtle.forward(i)
    turtle.right(98)
结果是一个壮观的彩虹螺旋:-)

如果你不想输入三百个数字,你可以通过移动屏幕的上边缘来获得很多鲜艳的颜色。本质上,您可以保持值和饱和度不变,并在循环的每次迭代中改变色调。Python的
colorsys
模块将帮助您将HSV值转换为RGB

像以前一样,您需要将i(从0到999)更改为色调值(从0到1)。这次,除以1000,但不要转换为整数

import colorsys
#turtle setup stuff goes here
for i in range(1000):
    color = colorsys.hsv_to_rgb(i/1000, 1.0, 1.0)
    #compatibility quirk: on 2.7 and below, use i/1000.0
    turtle.color(color)
    turtle.forward(i)
    turtle.right(98)

首先,创建一个包含100种不同颜色的列表。每种颜色都应该是一个RGB元组,范围从零到一。有很多方法可以做到这一点,但我只是手工输入我最喜欢的颜色

colors = [
#reddish colors
(1.00, 0.00, 0.00),(1.00, 0.03, 0.00),(1.00, 0.05, 0.00),(1.00, 0.07, 0.00),(1.00, 0.10, 0.00),(1.00, 0.12, 0.00),(1.00, 0.15, 0.00),(1.00, 0.17, 0.00),(1.00, 0.20, 0.00),(1.00, 0.23, 0.00),(1.00, 0.25, 0.00),(1.00, 0.28, 0.00),(1.00, 0.30, 0.00),(1.00, 0.33, 0.00),(1.00, 0.35, 0.00),(1.00, 0.38, 0.00),(1.00, 0.40, 0.00),(1.00, 0.42, 0.00),(1.00, 0.45, 0.00),(1.00, 0.47, 0.00),
#orangey colors
(1.00, 0.50, 0.00),(1.00, 0.53, 0.00),(1.00, 0.55, 0.00),(1.00, 0.57, 0.00),(1.00, 0.60, 0.00),(1.00, 0.62, 0.00),(1.00, 0.65, 0.00),(1.00, 0.68, 0.00),(1.00, 0.70, 0.00),(1.00, 0.72, 0.00),(1.00, 0.75, 0.00),(1.00, 0.78, 0.00),(1.00, 0.80, 0.00),(1.00, 0.82, 0.00),(1.00, 0.85, 0.00),(1.00, 0.88, 0.00),(1.00, 0.90, 0.00),(1.00, 0.93, 0.00),(1.00, 0.95, 0.00),(1.00, 0.97, 0.00),
#yellowy colors
(1.00, 1.00, 0.00),(0.95, 1.00, 0.00),(0.90, 1.00, 0.00),(0.85, 1.00, 0.00),(0.80, 1.00, 0.00),(0.75, 1.00, 0.00),(0.70, 1.00, 0.00),(0.65, 1.00, 0.00),(0.60, 1.00, 0.00),(0.55, 1.00, 0.00),(0.50, 1.00, 0.00),(0.45, 1.00, 0.00),(0.40, 1.00, 0.00),(0.35, 1.00, 0.00),(0.30, 1.00, 0.00),(0.25, 1.00, 0.00),(0.20, 1.00, 0.00),(0.15, 1.00, 0.00),(0.10, 1.00, 0.00),(0.05, 1.00, 0.00),
#greenish colors
(0.00, 1.00, 0.00),(0.00, 0.95, 0.05),(0.00, 0.90, 0.10),(0.00, 0.85, 0.15),(0.00, 0.80, 0.20),(0.00, 0.75, 0.25),(0.00, 0.70, 0.30),(0.00, 0.65, 0.35),(0.00, 0.60, 0.40),(0.00, 0.55, 0.45),(0.00, 0.50, 0.50),(0.00, 0.45, 0.55),(0.00, 0.40, 0.60),(0.00, 0.35, 0.65),(0.00, 0.30, 0.70),(0.00, 0.25, 0.75),(0.00, 0.20, 0.80),(0.00, 0.15, 0.85),(0.00, 0.10, 0.90),(0.00, 0.05, 0.95),
#blueish colors
(0.00, 0.00, 1.00),(0.05, 0.00, 1.00),(0.10, 0.00, 1.00),(0.15, 0.00, 1.00),(0.20, 0.00, 1.00),(0.25, 0.00, 1.00),(0.30, 0.00, 1.00),(0.35, 0.00, 1.00),(0.40, 0.00, 1.00),(0.45, 0.00, 1.00),(0.50, 0.00, 1.00),(0.55, 0.00, 1.00),(0.60, 0.00, 1.00),(0.65, 0.00, 1.00),(0.70, 0.00, 1.00),(0.75, 0.00, 1.00),(0.80, 0.00, 1.00),(0.85, 0.00, 1.00),(0.90, 0.00, 1.00),(0.95, 0.00, 1.00)
]
然后,在循环中,从列表中选择一种颜色。您需要将从0到999的i转换为从0到列表大小的索引。这最容易通过除以10并转换为整数来实现。然后可以使用
turtle.color
设置海龟的颜色

for i in range(1000):
    idx = int(i/10)
    color = colors[idx]
    turtle.color(color)
    turtle.forward(i)
    turtle.right(98)
结果是一个壮观的彩虹螺旋:-)

如果你不想输入三百个数字,你可以通过移动屏幕的上边缘来获得很多鲜艳的颜色。本质上,您可以保持值和饱和度不变,并在循环的每次迭代中改变色调。Python的
colorsys
模块将帮助您将HSV值转换为RGB

像以前一样,您需要将i(从0到999)更改为色调值(从0到1)。这次,除以1000,但不要转换为整数

import colorsys
#turtle setup stuff goes here
for i in range(1000):
    color = colorsys.hsv_to_rgb(i/1000, 1.0, 1.0)
    #compatibility quirk: on 2.7 and below, use i/1000.0
    turtle.color(color)
    turtle.forward(i)
    turtle.right(98)

我尝试了一种不同的方法,但它实际上不是100种颜色。您可能会稍微更改代码以获得100。目前,这将是一道彩虹。首先我从红色到黄色,再到绿色,再到青色,再到蓝色,再到洋红,再回到红色

r = 1
g = 0
b = 0
for _ in range(10):
    color(r, g, b)
    #do whatever you have for the moving
    g += 0.1
for _ in range(10):
    color(r, g, b)
    #do the same thing as before
    r -= 1
...
使用的技术是: 选择要开始的颜色, 在rgb色轮上添加顺时针方向的颜色, 减去你开始使用的颜色, 添加第二种颜色, 重复一遍。 希望我不会太晚;) 编辑:只是看看日期。哎呀!
至少有些人可能会觉得这个颜色更有用。

我尝试了不同的方法,但实际上它不是100种颜色。您可能会稍微更改代码以获得100。目前,这将是一道彩虹。首先我从红色到黄色,再到绿色,再到青色,再到蓝色,再到洋红,再回到红色

r = 1
g = 0
b = 0
for _ in range(10):
    color(r, g, b)
    #do whatever you have for the moving
    g += 0.1
for _ in range(10):
    color(r, g, b)
    #do the same thing as before
    r -= 1
...
使用的技术是: 选择要开始的颜色, 在rgb色轮上添加顺时针方向的颜色, 减去你开始使用的颜色, 添加第二种颜色, 重复一遍。 希望我不会太晚;) 编辑:只是看看日期。哎呀!
至少有些人可能会觉得这种颜色很有用。

有什么特别的颜色吗?您对100种不同的灰色满意吗?:-)但我在帮助你,要求你更严格地陈述你的要求。颜色是否需要按特定顺序排列?断开连接的混乱或无缝渐变?好的,对不起,凯文…让我给你网站上关于颜色部分的实际分配细节:海龟颜色(r,g,b)产生由暗变亮或改变色调的色彩效果。这就是老师想要的,所以我试图找出循环的代码。我知道是0。至少我认为这是对的,但我不知道如何陈述循环。再一次,对不起,我以为你在嘲笑我:)哎呀,我在阅读颜色要求之前写了一个答案。Python有一个非常有用的方法来获取特定色调的RGB值。我稍后会写一些关于这方面的内容。@user2744549我编辑了你的一些问题,以删除大部分非问题内容。如果我在编辑过程中丢失了任何东西,或者未能传达您正在寻求指导,而这不是
请向我提出codez
问题,请随时重新编辑。有什么特别的颜色吗?您对100种不同的灰色满意吗?:-)但我在帮助你,要求你更严格地陈述你的要求。颜色是否需要按特定顺序排列?断开连接的混乱或无缝渐变?好的,对不起,凯文…让我给你网站上关于颜色部分的实际分配细节:海龟颜色(r,g,b)产生由暗变亮或改变色调的色彩效果。这就是老师想要的,所以我试图找出循环的代码。我知道是0。至少我认为这是对的,但我不知道如何陈述循环。再次抱歉我以为你在嘲笑我