记录一张turtle画

今日和群友聊天之际,谈到高中生活,翻出了一张当时的美术课画作(出生以来第一次也是唯一的一次美术拿A):

然后想着用turtle库重现一下,代码不是很长,直接贴文章里吧

from turtle import *
import math

set_change_angle = 3    #与线密度反比
set_size = 780    #与整幅图大小正比
set_tilt_angle = 30 #与空白区域大小正比
set_layer_num = 3   #绘制层数
set_reduction_scale = 2   #每层大小比例
#3, ***, 30, 3, 2   此值会出一张看起来像是动的图

def angle2pos(angle):
    angle = math.radians(angle)
    x = math.sin(angle)*set_size
    y = math.cos(angle)*set_size
    return x, y

def draw_straight():
    for j in range(int(360/set_change_angle)):
        up()
        setpos(angle2pos(j*set_change_angle))
        down()
        setpos(angle2pos(180-set_tilt_angle+j*set_change_angle))

def draw_circle():
    up()
    setpos(0, -0.5*set_size)
    begin_fill()
    circle(0.5*set_size)
    end_fill()

def turtle_init():
    tracer(False)   #不显示绘图过程
    color("white", "black") #画笔白色,填充黑色

if __name__ == '__main__':
    turtle_init()
    draw_circle()
    for i in range(set_layer_num):
        set_size = set_size/set_reduction_scale
        draw_straight()
    done()

最上面有五个可变的参数,改变后可以画出各种各样的同心圆图,这里就贴一个用上面五个参数画出来的图

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注