(图书介绍:童晶:《Python趣味创意编程》新书预告)

本章我们将实现催眠的同心圆,如图所示。盯着逐渐变大消失的同心圆中心一段时间,再看其他物体会有收缩变形的错觉。

3 催眠的同心圆

首先利用帧数实现逐渐变大的圆圈,并利用取余实现圆圈重复变大的效果;接着学习for循环语句,改进同心圆的绘制方法;最后实现同心圆逐渐变大、淡化消失的动画效果。

视频教程:

最终代码:

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循环等语法知识,学习了帧数帧率、设置线条等用法。利用这些知识点,绘制了催眠的同心圆。读者也可以搜索其他错觉艺术形式(比如大小错觉),尝试编写代码实现。

更多推荐

第3章 催眠的同心圆(《Python趣味创意编程》教学视频)