(图书介绍:童晶:《Python趣味创意编程》新书预告)
本章我们将实现旋转的圆弧,如图所示。首先学习圆弧的绘制和旋转;接着利用全局变量实现圆弧逐渐变长,学习if选择语句,实现圆弧长度的重复变化;然后学习逻辑运算符,实现圆弧的同时旋转与长度变化;最后实现多层圆弧的动画效果。
知乎视频www.zhihu.com视频教程:
知乎视频www.zhihu.com最终代码:
def setup(): # 初始化函数,仅运行一次global spanAngle,spanAngleSpeed # 全局变量size(600, 600) # 设定画面宽度、高度noFill() # 不填充strokeWeight(3) # 设置线条粗细spanAngle = 0 # 圆弧跨越的角度,初始为0 spanAngleSpeed = 0.5 # 圆弧跨越角度变化速度def draw(): # 绘制函数,每帧重复运行global spanAngle,spanAngleSpeed # 全局变量background(255) # 设置白色背景,并覆盖整个画面# 圆弧终点角度,随着帧率循环变大endAngle = 2*radians(frameCount % 360) spanAngle = spanAngle + radians(spanAngleSpeed) # 圆弧跨越角度变化startAngle = endAngle - spanAngle # 求出圆弧起点角度if spanAngle > 2*PI or spanAngle < 0: # 当跨越角度达到2PI或0时spanAngleSpeed = -spanAngleSpeed # 更改跨越角度变化速度的方向for diam in range(50,width,50): # 圆弧直径从50开始遍历到widthangleShift = radians(360*diam/width) # 不同直径圆弧有个偏移量arc(width/2,height/2,diam,diam, # 绘制对应的各个圆弧startAngle+angleShift,endAngle+angleShift)
这一章主要讲解了全局变量、if选择判断、比较大小运算符、逻辑运算符等语法知识,学习了圆弧的绘制。利用这些知识点,绘制了旋转的圆弧。读者也可以利用if选择和for循环,尝试实现理发店标志转灯的效果。