前言
之前的几篇文章,做了一些发散, 谈到了位置与颜色的控制。这次回到涂鸦模型本身,继续讲随机涂鸦的问题。
在之前的文章中,已经实现
这次到了弧线涂鸦了。
弧线实际上就是圆的一部分。python能画弧线的库很多,原理各不相同,但是大多数都用圆心+角度来实现,画完一个弧线,要就地开始画下一条弧线,就会很困难。画连续弧线比较方便的目前只找到turtle,所以这次的探索就用turtle来实现。
实现说明
实现起来需要思考的问题是:
从画布的哪个点开始;
怎样连续画弧线?
有什么约束?
解决方案:
turtle不用选择起点,给了参数,给了命令之后,就自行开始画了
turtle画弧线只需要输入半径和角度即可。
对于涂鸦来说,半径是随机的,所以就使用随机算法,在一定的区间内,每次的弧线随机选择一个半径开始画;角度也要确定一个区间, 每次每次随机选一个。
由于turtle是画圆弧不用确定圆心,而且可以从画笔当前位置直接开始画下一笔,不需要寻找或保存上一笔完成后画笔的位置,就很简单。
代码如下:
import turtle
import random
#使用循环控制绘图次数
for i in range(0, 200):
#设置半径最小值和最大值,每次绘图的时候随机取值
radius = random.randint(10, 80)
#设置角度的最小值和最大值,每次绘图的时候随机取值
extent = random.randint(-45, 45)
turtle.circle(radius, extent)
turtle.done()
效果如下:
turtle随机画图
看起来像是画了一个卡通头像。
总结
使用连续弧线的方式模拟的涂鸦,比起直线、折线涂鸦出来的作品,更像是在画画了。如果再对这些东西做少量的加工,很有可能出现好的画作。但也依赖图像处理,工作量会很大。
之后的文章会继续探索一些好玩的东西,欢迎继续关注。