admin管理员组文章数量:1794759
第7章 随机扭动的曲线(《Python趣味创意编程》教学视频)
(图书介绍:童晶:《Python趣味创意编程》新书预告)
本章我们将实现随机扭动的曲线,如图所示。首先绘制圆圈上的一些采样点,并学习random、noise两种随机函数;接着学习曲线的绘制,解决首尾不连续的问题;最后绘制彩色曲线,并添加清屏与保存图片的功能。
7 随机扭动的曲线
视频教程:
最终代码:
def setup(): size(800, 800) # 设定画布大小 noFill() # 不要填充颜色 background(255) # 纯白背景 frameRate(30) # 设置帧率 def draw(): if frameCount%800 ==0: # 每过若干帧 saveFrame("RandomLines-######.png") # 保存一张图片 background(255) # 用白色重新填充背景 translate(width/2, height/2) # 移动坐标系原点到画面中心 r = map(sin(frameCount/200.0),-1,1,100,255) # 随机红色分量 g = map(sin(frameCount/300.0),-1,1,0,255) # 随机绿色分量 b = map(sin(frameCount/400.0),-1,1,100,255) # 随机蓝色分量 stroke(r,g,b,15) # 设置线条颜色、透明度 beginShape() # 开始绘制曲线 for angle in range(0,360,2): # 对一圈角度遍历 radAngle = radians(angle) # 转换为弧度值 # 利用三角函数生成周期性的数据,避免曲线首尾不连续的问题 noiseID = sin(radAngle) - cos(radAngle) \\ + 2*sin(radAngle)*sin(radAngle) # 利用二维噪声函数生成随机半径 radius = map(noise(noiseID*0.3,frameCount*0.01) \\ ,0,1,200,400) x = radius*cos(radAngle) # 这一角度对应的x坐标 y = radius*sin(radAngle) # 这一角度对应的y坐标 curveVertex(x, y) # 添加对应顶点 endShape(CLOSE) # 结束封闭曲线的绘制 def mousePressed(): # 当鼠标按键时 saveFrame("RandomLines-######.png") # 保存一张图片 background(255) # 用白色重新填充背景代码可以随机生成很多的图片效果,并自动保存图片文件:
稍微调整下代码,也可以实现下面的随机线条效果:
这一章主要讲解了随机函数、RGB颜色模型、曲线绘制的知识,实现了随机扭动的曲线。应用随机和颜色,读者也可以在这章内容的基础上,进行更多的创作。生成的随机风格图片,也可以用于本子封皮、鼠标垫、手机壳、T恤衫等上面个性化图案的印制。
版权声明:本文标题:第7章 随机扭动的曲线(《Python趣味创意编程》教学视频) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686834769a108339.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论