七夕特别篇|用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 最终动图
在最后再来看一下动图,感受完整的绘制过程。

七夕特别篇|用Python绘画牛郎织女在鹊桥相见的更多相关文章
- 【Python之路】特别篇--Python面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- 番外特别篇之 为什么我不建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起
关于"番外特别篇" 所谓"番外特别篇",就是系列文章更新期间内,随机插入的一篇文章.目前我正在更新的系列文章是 实现iOS图片等资源文件的热更新化.但是,这两天 ...
- 篇5 python自动化测试应用-Selenium环境篇
篇5 python自动化测试应用-Selenium环境篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),从本篇开始我将开始 ...
- 一篇关于Python装饰器的博文
这是一篇关于python装饰器的博文 在学习python的过程中处处受阻,之前的学习中Python的装饰器学习了好几遍也没能真正的弄懂.这一次抓住视频猛啃了一波,就连python大佬讲解装饰器起来也需 ...
- 登录界面 Android简单http get请求(含server端)五 iOS端(特别篇)
</pre><pre name="code" class="objc">NSDictionary *dict=@{@"user ...
- python从零开始 -- 第2篇之python版本差异
python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知 ...
- AI之路,第二篇:python数学知识2
第二篇:python数学知识2 线性代数 导入相应的模块: >>> import numpy as np (数值处理模块)>>> import scipy ...
- Python之路,第一篇:Python入门与基础
第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...
- Python编程笔记(第一篇)Python基础语法
一.python介绍 1.编程语言排行榜 TIOBE榜 TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员.课程和第三方厂商的数量. 2.pytho ...
随机推荐
- zset如何解决内部链表查找效率低下
zset作为有序集合,内部基于跳表或者说索引的方式实现了数据的快速查找.解决了链表查询效率低下的痛点 前言 紧接前文我们学习了Redis中Hash结构.在里面我们梳理了字典这个重要的内部结构并分析了h ...
- Nginx:Nginx的安装
Nginx安装 首先安装依赖 #安装Nginx需要gcc openssl-devel pcre-devel zlib-devel依赖 yum -y install gcc openssl-devel ...
- Java:Java实例化(new)过程
实例化过程(new) 1.首先去JVM 的方法区中区寻找类的class对象,如果能找到,则按照定义生成对象,找不到 >>如下2.所示 2.加载类定义:类加载器(classLoader)寻找 ...
- com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
RabbitMQ 基于Erlang 实现, 客户端可以用Python | Java | Ruby | PHP | C# | Javascript | Go等语言来实现.这里做个java语言的测试.首先 ...
- leetcode TOP100 两数相加
两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...
- Dapper的基本使用 [转]
Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂的配置文件,一个单文件就可 ...
- Linux必备命令 - 常用命令集
默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是$表示当前为普通用户.cd 命令 cd /home :解析:进入/home目录 ...
- PYTHON UNRAR
下载安装VINRAR 安装上面的下载文件 安装位置:32位具体位置 C:\Program Files (x86)\UnrarDLL 64位具体位置:C:\Program Files (x86 ...
- 高性能内存图数据库RedisGraph(二)
这篇文章主要介绍用一下RedisGraph的历史和现状. 2018年5月,Redis Labs发布了RedisGraph的预览/测试版.6个月后,在Redis Labs和开源社区的开发者们的共同努力下 ...
- 【LeetCode】974. 和可被 K 整除的子数组
974. 和可被 K 整除的子数组 知识点:数组:前缀和: 题目描述 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例 输入:A = [4,5,0,-2,-3, ...