第6章 旋转的方块(《Python趣味创意编程》教学视频)
(图书介绍:童晶:《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趣味创意编程》教学视频)相关推荐
- background 旋转_第4章 旋转的圆弧(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现旋转的圆弧,如图所示.首先学习圆弧的绘制和旋转:接着利用全局变量实现圆弧逐渐变长,学习if选择语句,实现圆弧长度的重 ...
- 第4章 旋转的圆弧(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现旋转的圆弧,如图所示.首先学习圆弧的绘制和旋转:接着利用全局变量实现圆弧逐渐变长,学习if选择语句,实现圆弧长度的重 ...
- 第15章 音乐可视化(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 15 音乐可视化 本章我们将实现音乐可视化的效果,如图所示.首先学习Minim库的下载配置,并利用Minim库播放音乐文件.绘制音 ...
- 第14章 定制字符画(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现定制字符画的效果,如图所示.首先对图片均匀采样.显示字符:然后对字符串的元素进行遍历,实现一段文字的替换显示:最后根 ...
- 第13章 图像像素采样(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现图像像素采样的绘制效果,如图所示.首先学习图像文件的读取与显示,获取像素颜色:然后生成马赛克效果,并实现随机采样画圆 ...
- 第12章 粒子同心圆(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现粒子同心圆,如图所示.首先学习面向对象编程的知识,为粒子类添加成员变量与成员函数:然后实现一个面向对象版本的运动粒子 ...
- 第11章 递归分形树(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将绘制递归分形树,如图所示.首先学习递归的概念,并学习if-elif-else语句:接着学习分形的概念,并利用递归调用绘制 ...
- 第10章 随机山水画(《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将绘制随机山水画,如图所示.首先学习HSB颜色模型,并实现天空颜色渐变的效果:接着利用柏林噪声,实现云朵和山脉的绘制:然后 ...
- 第9章 互相作用的圆球 (《Python趣味创意编程》教学视频)
(图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现互相作用的圆球,如图所示.首先实现多个随机的圆球,为圆球之间增加作用力,使其均匀分布到一个大圆内:然后实现鼠标交互, ...
最新文章
- Linux 虚拟内存和物理内存的理解【转】
- 超级挂载 实现过程-代码
- 若依管理系统源码分析-分页的实现以及post请求时的分页
- Python:年轻人,不会正则表达式你睡得着觉?有点出息没有?
- 使用IDEA在引入Schema空间时报错URI is not registered解决方法
- java代码对比工具_代码比较工具(Diffuse)
- IIS 6 元数据库与IIS 6 配置的兼容性 解决方案
- Linux | Shell脚本从入门到实战
- 机器学习教程 之 Boosting 与 bagging:集成学习框架
- 【生物信息】影像组学入门实践成长营(14天)
- centos格式化优盘命令_Centos7 格式化分区并挂载
- java faker_Java 生成测试字符串的库:Java Faker
- 描写火车站场景_优美段落:描写车站的经典美文摘抄
- 如何使用python画一个爱心
- kettle案例21-将字段值设置为常量
- Oracle HR 样例用户的建立 10g,11g均可
- 李宏毅language课程Speach Recongition
- 中国强大的希望-浙江大学郑强演讲 转载
- PR 2022 最新重大更新 离线语音转文本教程
- FreeRTOS-ARM架构深入理解
热门文章
- struct与typedef 结构体定义
- MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
- mysql中 for update 使用
- springboot启动报错:Error starting ApplicationContext. To display the conditions report re-run your appl
- 【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()
- 写在这一年实习的总结
- JS正则表达式的分组匹配
- 02_HBase集群部署
- cocos2dx 3.x 快速创建项目
- 车辆违章演示示例代码