先附上封面图:
最近想看看三原色旋转起来是什么样的,于是用turtle库写了这个函数,但是最终效果不是很好,毕竟不是真旋转而是刷新,所以仅供参考
欢迎评论员讨论!
注意事项:
1 设置 tracer(0) 后,必须使用 update() 手动刷新,不然图片不会刷新
2 回到圆心后必须调整角度,向右转90度
goto(0,0) # 回到圆心
right(90) # 调整角度,使海龟头指向绘制下一种颜色的方向
3 r = 500 r设置的越小,绘制速度越快
效果图:
颜色版自动旋转
完整代码:
from turtle import *
from time import ctime
# cyan:青色 magenta:品红色
color = ['red','yellow','blue']
color00 = ['#ff0000']
color01 = [(50, 193, 143)] # 不知道为什么 RBG 格式的颜色不行
color0 = ['cyan','magenta','yellow']
color2 = ['red','green','blue']
color3 = ['yellow','cyan']
color4 = ['yellow','magenta']
color5 = ['yellow','magenta', 'yellow','magenta', 'yellow','magenta']
color6 = ['cyan','magenta','yellow', 'cyan','magenta','yellow', 'cyan','magenta','yellow']
colors = ['#ff0000','#ff3300','#ff6600','#ff9900','#ffff00','#99ff00',
'#00ff00','#00ffff','#0000ff','#6600ff','#ff00ff','#ff0066']
# 红、橙红、橙、橙黄、黄、黄绿、绿、蓝绿、蓝、蓝紫、紫、紫红
color = colors # 颜色板色系选择
x = 11 # 每次刷新逆时针旋转的角度
r = 100 # 颜色板半径
Angle = 360/len(color) # 每个颜色所占角度
T = 0 # 用于计算每秒钟刷新次数
c_time = ctime().split()[-2]# 获取当前时间时分秒 格式为 13:54:50
tracer(0) # 为0表示不刷新,即不演示绘制过程,可注释掉查看绘制颜色版的过程
def draw():
for c in color: # 循环取列表中的颜色进行填充
penup() # 拿起画笔,不让画笔在画板上留痕迹
fillcolor(c) # 选择填充的颜色为取出的颜色
begin_fill() # 开始填充
fd(r) # 前进半径长度
left(90) # 调整到画圆的角度
circle(r,Angle) # 画出改颜色所占的圆弧
goto(0,0) # 回到圆心
right(90) # 调整角度,使海龟头指向绘制下一种颜色的方向
end_fill() # 结束填充
for i in range(100000):
clear() # 清空画布 ,可极大提高绘制速度,大概提高30倍
draw() # 绘图函数
# home() # 让海龟回家 注释掉也是可以的
# left(i%360)
left(x*i) # 每次绘图偏转角度,不用余360也行
update() # 设置tracer(0),必须更新,不然图不会变
hideturtle() # 隐藏画笔
# 看看每秒钟绘制了多少次 注释掉或许转的更快?
if c_time == ctime().split()[-2]:
T += 1
else:
print(T)
T = 0
c_time = ctime().split()[-2]
done() # 循环结束选择保留画布