为2020年的第一场雪锦上添花:用 matplotlib 绘制雪花和雪景 [复制链接]

2020-1-13 17:41
Gendan5 阅读:730 评论:0 赞:1
Tag:  

一场大雪,覆盖了华北、华东。天地连成一片,城市银装素裹,处处诗情画意、人人兴高采烈。朋友圈被雪景图和调侃路滑摔跤的段子刷屏,气氛比过年还要热烈几分。我也来凑个热闹,用python为2020年的第一场雪锦上添花。

绘制雪花图案,网上有很多文章先容,但几乎都是用 Python 的内置模块 turtle 绘制的,这个模块适合用来引导孩子学习编程,很难真正用在项目开发上。也有用 pygame 实现的,不过 pygame 追求的是动画效果,雪花图案是随机生成的圆,效果很一般。

用 matplotlib 绘制雪花,重点是生成科赫曲线(Koch Curve)。科赫曲线是一种分形,其形态似雪花,又称科赫雪花、雪花曲线。给定线段pq,k阶科赫曲线可以由以下步骤生成:

找出三等分点u、v

以线段uv为底,向外(或内外)画等边三角形uwv

将线段uv移除

对pq之间的每一段重复上述操作k-1次

科赫雪花是以等边三角形三边生成的科赫曲线组成的。基于上述分析,大家可以很容易地写出科赫雪花的生成函数:给定一个等边三角形,和科赫曲线阶数k,返回科赫雪花图案中的所有点。

有了雪花图案的数据,接下来使用 matplotlib 绘图就非常轻松了:

来看看大家的雪花效果。从小到大,3片雪花分别对应的是3阶、4阶、5阶的科赫雪花。

更进一步,大家还可以把雪花画在背景图上,配合大小浓淡的变化,画出另一种韵味的雪景图。






我来说两句
您需要登录后才可以评论 登录 | 马上注册
facelist
所有评论(0)
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注大家

Powered by Discuz! X3.2© 2001-2019 澳门新莆京娱乐网站-澳门新莆京手机网站(欢迎您).( 粤ICP备15117877号 )

XML 地图 | Sitemap 地图