/Demo/turtle/tdemo_colormixer.py
http://unladen-swallow.googlecode.com/ · Python · 58 lines · 48 code · 9 blank · 1 comment · 1 complexity · 50a3c11aaaba691e6936674c7188c853 MD5 · raw file
- # colormixer
- from turtle import Screen, Turtle, mainloop
- class ColorTurtle(Turtle):
- def __init__(self, x, y):
- Turtle.__init__(self)
- self.shape("turtle")
- self.resizemode("user")
- self.shapesize(3,3,5)
- self.pensize(10)
- self._color = [0,0,0]
- self.x = x
- self._color[x] = y
- self.color(self._color)
- self.speed(0)
- self.left(90)
- self.pu()
- self.goto(x,0)
- self.pd()
- self.sety(1)
- self.pu()
- self.sety(y)
- self.pencolor("gray25")
- self.ondrag(self.shift)
- def shift(self, x, y):
- self.sety(max(0,min(y,1)))
- self._color[self.x] = self.ycor()
- self.fillcolor(self._color)
- setbgcolor()
- def setbgcolor():
- screen.bgcolor(red.ycor(), green.ycor(), blue.ycor())
- def main():
- global screen, red, green, blue
- screen = Screen()
- screen.delay(0)
- screen.setworldcoordinates(-1, -0.3, 3, 1.3)
- red = ColorTurtle(0, .5)
- green = ColorTurtle(1, .5)
- blue = ColorTurtle(2, .5)
- setbgcolor()
- writer = Turtle()
- writer.ht()
- writer.pu()
- writer.goto(1,1.15)
- writer.write("DRAG!",align="center",font=("Arial",30,("bold","italic")))
- return "EVENTLOOP"
- if __name__ == "__main__":
- msg = main()
- print msg
- mainloop()