Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what does bad color sequence mean in python turtle?

I am using python turtle for a project where I need turtle to draw characters. However, when I try to use the RGB value for a color, I keep getting an error message. The input is:

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

followed by a series of movements. However, when I run the program I get this message:

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)

What does this mean, and how can I fix it?

like image 598
derpyherp Avatar asked May 27 '13 17:05

derpyherp


2 Answers

From the docs:

Each of r, g, and b must be in the range 0..colormode, where colormode is either 1.0 or 255 (see colormode()).

Your colormode is probably set to 1.0, so either the individual color coordinates need to be floats in the range 0 to 1, or you need to set the colormode to 255.

like image 178
Petr Viktorin Avatar answered Sep 22 '22 10:09

Petr Viktorin


A very short and simplified answer is, it means the value passed to the pencolor() method has not been previously set via the Screen object method colormode().

A screen object must be created. And then, the color mode must be set. Thus, making it possible for the turtle pen to accept a tuple class object which contains a number ranging from 0 - 255. (255, 0, 20) for example. Why? Because there is more than one way of setting the color mode.

e.g.

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()
like image 33
victorkolis Avatar answered Sep 23 '22 10:09

victorkolis