| 
									
										
										
										
											2008-06-10 04:44:07 +00:00
										 |  |  | # colormixer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-09-21 07:32:10 +00:00
										 |  |  | from turtle import Screen, Turtle, mainloop | 
					
						
							| 
									
										
										
										
											2008-06-10 04:44:07 +00:00
										 |  |  | import sys | 
					
						
							|  |  |  | sys.setrecursionlimit(20000)   # overcomes, for now, an instability of Python 3.0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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() |