七夕特别篇|用 Python 绘画牛郎织女在鹊桥相见
大家好,我是辰哥~
今天就是七夕节,首先提前祝福有伴侣的小伙伴,七夕快乐,没有伴侣的小伙伴,今天就会找到伴侣,(给看到这句话的你好运加持,哈哈哈)。
作为会 Python 的我们必须做点好玩且有意义的东西。在本文中辰哥使用 turtle 库进行绘制,如果不清楚 turtle 的大概使用可以参考辰哥之前的一篇文章(520情人节|用Python跟‘喜欢的人’表白)。
本文的完整源码分享在文末,小伙伴可以自行运行以及修改,先看一下最终的图:

图中画的是:牛郎织女鹊桥相见的画面。下面来看绘制过程(牛郎织女相见过程):

01 绘制过程
下面辰哥开始讲解如何去绘制这个图(涉及的代码和图片都在后面分享)

首先定义三个画笔(t、t2、t3),t 用于绘制桥和牛郎;t2 用于绘制织女;t3 用于写字和绘制月亮;
绘制桥身:

为了呈现 3D 效果,同样的需要再多绘制类似两条,效果如下:

给桥添加阶梯

这里定义了一个画横线的函数方法,通过传入画笔开始坐标(x,y),画笔向左偏转角度 left,向右偏转角度 right,以及绘制的线条长度。画笔的颜色改为灰色:gray

调用函数给桥画阶梯,其效果如下:

接着开始绘制牛郎织女,由于辰哥技术和绘画细胞有限,这里就采用照片形式
的牛郎织女。

这里辰哥在网上找了两张图片作为牛郎织女,并将其命名为:boy1.gif 和 girl1.gif(由于 turtle 仅支持 gif 格式图片,所以这里辰哥将图片格式改为 gif)


添加好图片后的效果:

为了实现动态的效果(桥中间相见的画面),将两个图片同时往中间移动(调整位置)

将牛郎织女从桥两边移动到中间。

既然是七夕节,那肯定少不了一些文字去修饰。
文字:七夕今宵看碧霄,牵牛织女渡河桥


辰哥记得牛郎织女相见的画面有一个月亮的。既然都画到这里了,那肯定也少不了月亮。

这里同样的是添加一个名为 yue1.gif 的图片

效果:

到这里就差不多绘制完毕了。
02 最终动图
在最后再来看一下动图,感受完整的绘制过程。

版权声明: 本文为 InfoQ 作者【Python研究者】的原创文章。
原文链接:【http://xie.infoq.cn/article/a983f8b7a3a61c8ad82cfeca6】。文章转载请联系作者。
评论