转自:菜鸟学Python

简单几步,100行代码用Python画一个蝙蝠侠的logo-1.jpg (35.33 KB, 下载次数: 0)

2020-7-30 12:04 上传

蝙蝠侠作为DC漫画的核心人物之一,一直都受到广大粉丝的喜爱,而笔者作为DC的铁杆粉丝,自然也是老爷(粉丝对蝙蝠侠的昵称)的支持者。今天,笔者就用Python来画一个蝙蝠侠的logo,大概就是下图这个样子:

简单几步,100行代码用Python画一个蝙蝠侠的logo-2.jpg (19.27 KB, 下载次数: 0)

2020-7-30 12:04 上传

图1. 蝙蝠侠的logo

这次作图全程用matplotlib,IDE用的是Spyder,系统是Windows7

1).首先导入各种库

简单几步,100行代码用Python画一个蝙蝠侠的logo-3.jpg (48.46 KB, 下载次数: 1)

2020-7-30 12:04 上传

2).然后设置一下画图板

图片坐标系为X轴和Y轴都在0—100的范围。patches变量后面会用到。

简单几步,100行代码用Python画一个蝙蝠侠的logo-4.jpg (29.1 KB, 下载次数: 0)

2020-7-30 12:04 上传

3).接下来再画两个椭圆

第一个椭圆是黄色的,宽64,高34,放在最下面,第二个是黑色的,宽60,高30,放在第一个椭圆之上,两者的中心都是坐标为(50, 50)的点。

es1 = Ellipse([50, 50], width=64, height=34, facecolor='yellow', zorder=1)

es2 = Ellipse([50, 50], width=60, height=30, facecolor='black', zorder=2)

大概就是下面的效果。

简单几步,100行代码用Python画一个蝙蝠侠的logo-5.jpg (16.88 KB, 下载次数: 0)

2020-7-30 12:04 上传

图2. 两个椭圆的效果图

然后画出图片左上部分的缺口,这部分用来显示蝙蝠的头部和翅膀。

这里我们用了3阶贝赛尔曲线,Path的CURVE4方法就代表3阶贝塞尔曲线,CURVE3则是2阶。3阶贝赛尔曲线需要4个坐标点,我们就设置好4个坐标点;

最后还要把这块图的边线宽度设为0,否则会有黑色边线出现影响效果。这个缺口图设置为黄色

这样就和下面的第一个椭圆的颜色一样,就能产生缺口效果。

简单几步,100行代码用Python画一个蝙蝠侠的logo-6.jpg (57.58 KB, 下载次数: 0)

2020-7-30 12:04 上传

#lw是边线宽度为0

大体效果如下图。

简单几步,100行代码用Python画一个蝙蝠侠的logo-7.jpg (17.45 KB, 下载次数: 0)

2020-7-30 12:04 上传

图3. 第一个缺口的效果图

4).接下来再画出图片的第二个缺口

位于图片左下方,这次我们用的是2阶贝塞尔曲线,就是Path的CURVE3方法,这里需要3个坐标点。其他设置和patch1类似。大体效果如下。这里我们可以看到形成了一些不规则部分,不用担心,后面会把这些不规则的地方去掉。

简单几步,100行代码用Python画一个蝙蝠侠的logo-8.jpg (17.98 KB, 下载次数: 1)

2020-7-30 12:04 上传

图4. 第二个缺口的效果图

5).画第三个缺口

然后在左下方的第一个缺口旁边再画一个缺口,也就是本图的第三个缺口。方法和上一个缺口类似,都是2阶贝塞尔曲线,只是坐标点不同,其他都一样。

简单几步,100行代码用Python画一个蝙蝠侠的logo-9.jpg (50.72 KB, 下载次数: 0)

2020-7-30 12:04 上传

第三个缺口形成的效果如下图。

简单几步,100行代码用Python画一个蝙蝠侠的logo-10.jpg (18.21 KB, 下载次数: 0)

2020-7-30 12:04 上传

图5. 第三个缺口的效果图

至此,本图基本上完成了一半,看到这里大家基本上可以看出蝙蝠标志的大概意思了,这就是蝙蝠的左翼,如果还没明白的话,把右侧再画完,就可以看清楚了。因为蝙蝠标志是左右对称的,所以我们只要在本图的右侧再依葫芦画瓢,对称画这几个缺口就可以了。

6).对称的画出右边部分

我们的坐标系是0至100的范围,图片中心坐标是(50, 50),所以右侧缺口的所有x坐标为100减去左侧缺口的对应x坐标的结果,所有y坐标不变。下面直接放上右侧3个缺口的代码,和左侧是完全对应的,patch4是右上的缺口,patch5是右下边最右侧的缺口,patch6是右下边靠中间的缺口。

简单几步,100行代码用Python画一个蝙蝠侠的logo-11.jpg (59.17 KB, 下载次数: 0)

2020-7-30 12:04 上传

#右下1

path_data5 ,path_data6都是类似的,完成两翼的绘制之后,大体效果如下。

简单几步,100行代码用Python画一个蝙蝠侠的logo-12.jpg (19.37 KB, 下载次数: 0)

2020-7-30 12:04 上传

图6. 完成两翼后的效果图

7).画出头部的效果

这时候看起来还不太像蝙蝠,倒有点像烤乳鸽,没事再画完蝙蝠头部就OK了。蝙蝠头的代码如下,就是画出一个倒立的梯形,上底边长一些,下底边短一些,用的是Path的MOVETO方法,需要设置四个坐标点。颜色还是黄色,边线宽度还是0。

简单几步,100行代码用Python画一个蝙蝠侠的logo-13.jpg (57.76 KB, 下载次数: 0)

2020-7-30 12:04 上传

头部效果如下图所示。

图7. 完成头部后的效果图

到这里整个蝙蝠侠logo的蝙蝠部分就画完了,但是还有一些细节部分要处理一下:

比如再加个黑色边框,然后再把不规则的部分去掉;

黑色边框仍用一个椭圆,这个椭圆命名为es3,和第一个黄色椭圆大小一样,但不填充,只设置边线宽度为4,默认为黑色;

然后再画一个椭圆es4,仍不填充,边线宽度设置为10,设为白色,这样就能把那些不规则的地方隐去;

代码如下:

es3 = Ellipse([50, 50], width=64, height=34, fill=False, lw=4, zorder=2) #不填充,同时边线宽度设置为4,默认为黑色

es4 = Ellipse([50, 50], width=68, height=38, fill=False, lw=10, edgecolor='white', zorder=2) #不填充,同时边线宽度设置为10,边线设为白色

最后的完成图效果如下。

简单几步,100行代码用Python画一个蝙蝠侠的logo-14.jpg (21.34 KB, 下载次数: 0)

2020-7-30 12:04 上传

图8. 完成效果图

至此,一个蝙蝠侠的logo完全搞定,我们再放上一个猛男配色和一个蓝色的logo,分别给蝙蝠女和罗宾,只需要把上面的黄色替换为粉色和蓝色即可。蝙蝠家族就算完成了。

简单几步,100行代码用Python画一个蝙蝠侠的logo-15.jpg (20.89 KB, 下载次数: 0)

2020-7-30 12:04 上传

图9. 蝙蝠女logo

简单几步,100行代码用Python画一个蝙蝠侠的logo-16.jpg (20.36 KB, 下载次数: 0)

2020-7-30 12:04 上传

图10. 罗宾logo

Python还是很有趣的,真的是无所不能!除了爬虫,数据分析,自动化测试,自动化办公,后端网站开发,人工智能机器学习,现在还能做画酷酷的画。真的很少有一门语言能如此简单而强大,学一门Python可以干好多事情,值了。

简单几步,100行代码用Python画一个蝙蝠侠的logo-17.jpg (46.4 KB, 下载次数: 0)

2020-7-30 12:04 上传

用python画苹果的logo_简单几步,100行代码用Python画一个蝙蝠侠的logo相关推荐

  1. python画画100行代码_简单几步,100行代码用Python画一个蝙蝠侠的logo

    原标题:简单几步,100行代码用Python画一个蝙蝠侠的logo 转自:菜鸟学Python 蝙蝠侠作为DC漫画的核心人物之一,一直都受到广大粉丝的喜爱,而笔者作为DC的铁杆粉丝,自然也是老爷(粉丝对 ...

  2. 开源自制的6通道航模遥控器(一) 超简单不超过100行代码

    前言 前段时间跟着LOLI大神的教程制作了LOLI三代控,效果很好.但是,由于LOLI三代控的接收机带有数据回传功能,也就是接收机的无线模块也承担了发射数据功能,所以接收机也要使用带有功率放大芯片的N ...

  3. abaqus画一个球 python_简单几步,100行代码用Python画一个蝙蝠侠的logo

    蝙蝠侠作为DC漫画的核心人物之一,一直都受到广大粉丝的喜爱,而笔者作为DC的铁杆粉丝,自然也是老爷(粉丝对蝙蝠侠的昵称)的支持者.今天,笔者就用Python来画一个蝙蝠侠的logo,大概就是下图这个样 ...

  4. python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo

    转自:菜鸟学Python 蝙蝠侠作为DC漫画的核心人物之一,一直都受到广大粉丝的喜爱,而笔者作为DC的铁杆粉丝,自然也是老爷(粉丝对蝙蝠侠的昵称)的支持者.今天,笔者就用Python来画一个蝙蝠侠的l ...

  5. python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面

    点击蓝字"python教程"关注我们哟! 我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识 ...

  6. python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面!

    我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识一下:爬取豆瓣读书页面,Python用16行代码就搞定了! p ...

  7. python 2048游戏的设计_Python练习:100行代码实现一个简易的2048游戏

    一.任务目标 1.一个在命令行下的2048游戏 2.主要实现功能:判断游戏是否结束:在随机空白位置生成新的数字:上下左右四个方向上进行平移数字并将能合并的数字进行合并:接收键盘输入:将数字阵列显示到命 ...

  8. 最简单的爬虫代码 python_最精简的爬虫 --仅需4行代码(python)

    最精简的爬虫 --仅需4行代码(python) 刚刚整理了下爬虫系列,于是乎就开始了第一次的技术分享 今天,我们主要讲述的是思路,思路,思路. 相比起,直接贴代码,思路显的更为重要 当初,自己的坑,希 ...

  9. python简单爬虫代码-最精简的爬虫 --仅需4行代码(python)

    最精简的爬虫 --仅需4行代码(python) 刚刚整理了下爬虫系列,于是乎就开始了第一次的技术分享 今天,我们主要讲述的是思路,思路,思路. 相比起,直接贴代码,思路显的更为重要 当初,自己的坑,希 ...

最新文章

  1. 【廖雪峰python入门笔记】list_创建
  2. arp_ignore和arp_announce内核参数
  3. 最详细的Faster RCNN论文笔记
  4. Python实战从入门到精通第十八讲——改变对象的字符串显示
  5. 共建数据库软件全生态,新数科技宣布 ShinSight 开放共享!
  6. Lec 15 Projections onto subspaces
  7. python的设计具有很强的可读性_Python是什么?具有怎么样的特点呢?
  8. MySQL安装下载教程
  9. 看完就能学会如何使用热敏电阻!
  10. python信用卡管理源码_Python随机生成信用卡卡号的实现方法
  11. SAP License:ERP系统实施价格是多少?
  12. 【python】生成随机数字/字母/指定位数的字母+数字的字符串
  13. 2021毓英中学高考成绩查询入口,2021年泉州各高中高考成绩排名及放榜最新消息...
  14. 万年历包括对应节日c语言,C语言 程序设 节日查询和任务提醒系统-万年历.doc
  15. 订阅号做了77天,没有挣钱,但是收获很多。
  16. c语言一行黑白相间的瓷砖,磁砖样式——第八届蓝桥杯C语言B组(国赛)第二题...
  17. 协作乐高 All In One:DAO工具大全
  18. textarea 中如何阻止默认的回车换行事件?
  19. 基于JavaGUI的火锅自助点菜客户端和服务端系统
  20. 如何进阶优秀数据分析师行列?方法、技术与工具,缺一不可!

热门文章

  1. Go-directed and habitual learning
  2. 关于Prim算法,自己的一些总结
  3. Java的输入/输出
  4. 【STM32】继电器的使用
  5. Timer延时任务和ScheduledThreadPool执行延时任务
  6. 隐马尔科夫模型 HMM 与 语音识别 speech recognition (1):名词解释
  7. 【2021-05-06】JS逆向之微店登入ua
  8. java程序步骤_java编写程序的步骤是什么?java编写程序步骤实例讲解
  9. 多台显示器连接一台服务器,如何用一台显示器连接多台电脑?
  10. AIX命令创建JFS2的LV及FS(非smitty交互模式)