今日和群友聊天之际,谈到高中生活,翻出了一张当时的美术课画作(出生以来第一次也是唯一的一次美术拿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()
最上面有五个可变的参数,改变后可以画出各种各样的同心圆图,这里就贴一个用上面五个参数画出来的图