(图书介绍:童晶:《Python趣味创意编程》新书预告)
本章我们将实现催眠的同心圆,如图所示。盯着逐渐变大消失的同心圆中心一段时间,再看其他物体会有收缩变形的错觉。
首先利用帧数实现逐渐变大的圆圈,并利用取余实现圆圈重复变大的效果;接着学习for循环语句,改进同心圆的绘制方法;最后实现同心圆逐渐变大、淡化消失的动画效果。
知乎视频www.zhihu.com视频教程:
知乎视频www.zhihu.com最终代码:
def setup(): # 初始化函数,仅运行一次
size(600, 600) # 设定画面宽度、高度
strokeWeight(3) # 设置线条粗细
noFill() # 不填充
frameRate(30) # 设置帧率
def draw(): # 绘制函数,每帧重复运行
background(255) # 设置白色背景,并覆盖整个画面
for diam in range(5, width+1, 20): # 直径从小遍历到画面宽度
d = (diam+2*frameCount) % width # 当前圆圈的直径
stroke(map(d,0,width,0,255)) # 设置当前圆圈线条颜色
circle(300, 300, d) # 绘制圆心在画面中心,直径为d的圆圈
这一章主要讲解了整除、取余、for循环等语法知识,学习了帧数帧率、设置线条等用法。利用这些知识点,绘制了催眠的同心圆。读者也可以搜索其他错觉艺术形式(比如大小错觉),尝试编写代码实现。