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

本章我们将实现旋转的圆弧,如图所示。首先学习圆弧的绘制和旋转;接着利用全局变量实现圆弧逐渐变长,学习if选择语句,实现圆弧长度的重复变化;然后学习逻辑运算符,实现圆弧的同时旋转与长度变化;最后实现多层圆弧的动画效果。

4 旋转的圆弧

视频教程:

最终代码:

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开始遍历到width
    angleShift = radians(360*diam/width) # 不同直径圆弧有个偏移量
    arc(width/2,height/2,diam,diam,  # 绘制对应的各个圆弧
        startAngle+angleShift,endAngle+angleShift)  

这一章主要讲解了全局变量、if选择判断、比较大小运算符、逻辑运算符等语法知识,学习了圆弧的绘制。利用这些知识点,绘制了旋转的圆弧。读者也可以利用if选择和for循环,尝试实现理发店标志转灯的效果。

 

更多推荐

第4章 旋转的圆弧(《Python趣味创意编程》教学视频)