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

本章我们将实现旋转的方块,如图所示。首先实现方块的绘制,学习坐标系的平移、旋转与缩放;接着实现一行方块的绘制,学习坐标系的保存与恢复;然后利用循环嵌套实现方块阵列的绘制;最后学习中文字符串的处理,实现文字表情包的制作。

6 旋转的方块

视频教程:

最终代码:

 def setup(): 
  size(500, 500) # 设定画布大小
  noFill()  # 不要填充颜色
  strokeWeight(2)  # 制定边框线条粗细
  stroke(50) # 设定线条颜色为淡灰色,0为纯黑、255为纯白

def draw(): 
  background(255)   # 纯白背景
  speed = radians(frameCount)
  for x in range(100,401,30):  # 对x遍历
    for y in range(100,401,30):  # 对y遍历 
      rectMode(CENTER)   # 矩形模式中心定位
      pushMatrix() # 保存之前的坐标系
      translate(x, y)  # 将坐标系原点移动到画面中心位置
      rotate(speed) # 绕着坐标系原点旋转
      # 当前缩放比例
        currentScale = map(sin(speed-x*49-y*2),-1,1,-35,35)  
      square(0, 0, 10*currentScale) # 在坐标系原点画一个矩形
      popMatrix()  # 恢复到之前保存的坐标系

进一步,也可以生成各种文字表情包:

这一章主要讲解了循环嵌套的语法知识,学习了方块的绘制、坐标系的变换、中文字符串的处理。利用这些知识点,实现了旋转的方块。读者也可以尝试用圆、圆弧、直线等元素或元素组合,修改元素的宽度、高度、位置、旋转、明暗等参数,实现更多有趣的效果。

 

更多推荐

第6章 旋转的方块(《Python趣味创意编程》教学视频)