python海龟库画旋转的三色板(turtle 库用法)

先附上封面图:

python海龟库画旋转的三色板(turtle 库用法)_第1张图片

最近想看看三原色旋转起来是什么样的,于是用turtle库写了这个函数,但是最终效果不是很好,毕竟不是真旋转而是刷新,所以仅供参考

欢迎评论员讨论!

  • turtle的帮助文档:turtle
  • 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()                  # 循环结束选择保留画布

你可能感兴趣的:(python,开发语言)