python中的颜色能用一个三元组来表示,三元组里存储的是红绿蓝三种颜色的份量。在这里,我们用ondrag事件命令拖动海龟,让它的y坐标在0到255的范围内上下移动。
把这个y坐标当成RGB中的一个值,这样可以组合三元色。让背景得到这个三元色的组合,所以背景的颜色就能跟着变换了。
ondrag命令的参数为一个事件处理函数。
#下面是python 海龟作图模块制作的颜色色混合器 源代码示例:
""" 072_颜色混合器.py 本程序也能做为RGB颜色展示用途。 """ from turtle import * r=0 g=0 b=0 bgcolor("black") delay(0) 红龟=Turtle(visible=False) 红龟.color('gray100','red') #分别设定海龟的画笔颜色和填充颜色 红龟.shapesize(5) #让海龟变大为原来的5倍 红龟.penup() 红龟.goto(-100,0) 红龟.showturtle() def 红色变换(x,y): #作为ondrag的事件处理函数,它一定要有x和y参数,接收鼠标的x,y坐标。 global r,g,b r=max(0,min(y,255)) #限定r的范围为0到255。 红龟.sety(r) bgcolor(r,g,b) title("当前RGB值:(" + str(r) + "," + str(g) + "," + str(b) + ")") 绿龟=Turtle(visible=False) 绿龟.color('gray100',(0,255,0)) #分别设定海龟的画笔颜色和填充颜色 绿龟.shapesize(5) #让海龟变大为原来的5倍 绿龟.penup() 绿龟.goto(0,0) 绿龟.showturtle() def 绿色变换(x,y): #作为ondrag的事件处理函数,它一定要有x和y参数,接收鼠标的x,y坐标。 global r,g,b g=max(0,min(y,255)) #限定r的范围为0到255。 绿龟.sety(g) bgcolor(r,g,b) title("当前RGB值:(" + str(r) + "," + str(g) + "," + str(b) + ")") 蓝龟=Turtle(visible=False) 蓝龟.color('gray100','blue') #分别设定海龟的画笔颜色和填充颜色 蓝龟.shapesize(5) #让海龟变大为原来的5倍 蓝龟.penup() 蓝龟.goto(100,0) 蓝龟.showturtle() def 蓝色变换(x,y): #作为ondrag的事件处理函数,它一定要有x和y参数,接收鼠标的x,y坐标。 global r,g,b b=max(0,min(y,255)) #限定r的范围为0到255。 蓝龟.sety(b) bgcolor(r,g,b) title("当前RGB值:(" + str(r) + "," + str(g) + "," + str(b) + ")") 红龟.ondrag(红色变换) #拖动事件发生时,调用红色变换函数,这个函数会接受鼠标的坐标。 绿龟.ondrag(绿色变换) #拖动事件发生时,调用红色变换函数,这个函数会接受鼠标的坐标。 蓝龟.ondrag(蓝色变换) #拖动事件发生时,调用红色变换函数,这个函数会接受鼠标的坐标。 listen()
少儿python编程培训预订开始,单击链接享受优惠:https://item.taobao.com/item.htm?id=544061935133
发表评论