错误的颜色序列在蟒蛇龟中意味着什么?

时间:2013-05-27 17:58:33

标签: python python-3.x turtle-graphics

我正在使用python turtle进行一个项目,我需要乌龟来绘制字符。但是,当我尝试使用rgb值foe颜色时,我不断收到错误消息。输入是

turtle.color((151,2,1))

接下来是一系列动作,但是当我运行程序时,我收到此消息

File "C:/Users/Larry/Desktop/tests.py", line 5, in center
turtle.color((151,2,1))
File "<string>", line 1, in color
File "C:\Python33\lib\turtle.py", line 2208, in color
pcolor = self._colorstr(pcolor)
File "C:\Python33\lib\turtle.py", line 2688, in _colorstr
return self.screen._colorstr(args)
File "C:\Python33\lib\turtle.py", line 1158, in _colorstr
raise TurtleGraphicsError("bad color sequence: %s" % str(color))
turtle.TurtleGraphicsError: bad color sequence: (151, 2, 1)

这是什么意思,我该如何解决?

2 个答案:

答案 0 :(得分:8)

来自docs

  

r,g和b中的每一个必须在0..colormode范围内,其中colormode为1.0或255(参见colormode())。

您的颜色模式可能设置为1.0,因此单个颜色坐标需要在0到1范围内浮动,或者您需要将颜色模式设置为255.

答案 1 :(得分:2)

一个非常简短和简化的答案是,这意味着传递给 pencolor() 方法的值之前没有通过 Screen 对象方法 colormode() 设置。

必须创建一个屏幕对象。然后,必须设置颜色模式。因此,使乌龟笔可以接受包含 0 - 255 范围内的数字的元组类对象。(255, 0, 20) 例如。为什么?因为设置颜色模式的方法不止一种。

例如

from turtle import Turtle
from turtle import Screen

# Creating a turtle object
bert = Turtle()

# Creating the screen object
screen = Screen()

# Setting the screen color-mode
screen.colormode(255)

# Changing the color of the pen the turtle carries
bert.pencolor(255, 0, 0)

# 'Screen object loop to prevent the window from closing without command'
screen.exitonclick()
相关问题