专栏首页诸葛青云的专栏Python入门必学,用Python练习画个美队盾牌
原创

Python入门必学,用Python练习画个美队盾牌

0 环境

Python版本:3.6.6

操作系统:Mac OS Mojave 10.14.2

1 引言

最近我每天晚上吃饭时候也拿手机看,上厕所也在看。

看着看着还会笑?WTF?你在干嘛呢?

没错,她在看美队……

这男人比我帅?……

比我有钱?……

还是比我有腔调?……

答案很明显,我相信你们的眼睛都是雪亮的。

那问题来了,作为一个男人,怎么能忍?虽然是个明星,虽然是假的,虽然已经挽回不了败局了……那我就送个美队的盾牌给你吧……

2 实战

先来看一个效果图:

用过Turtle的都知道,画笔是需要抬手和落笔的。这一点一定要理解,因为计算机是很死板的,你的每一个动作都必须告诉他,包括GC。

所以你的画笔一旦落下,经过的每一处都会留下字迹。如果希望隔开一段距离就需要经过「抬笔」->「移动画笔」->「落笔」。

关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货

每天晚上20:00都会开直播给大家分享python学习知识和路线方法,群里会不定期更新最新的教程和学习方法,大家都是学习python的,或是转行,或是大学生,还有工作中想提升自己能力的,如果你是正在学习python的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实

所以我们先把这个动作封装成一个函数:

def setpen(x, y):

# 抬笔

t.penup()

# 移动画笔到(x, y)

t.goto(x, y)

# 落笔

t.pendown()

t.setheading(0)

接下来就来画盾牌。盾牌的话,注意观察美队盾牌,颜色是「红」->「白」->「红」->「蓝」。

这里有一个技巧,就是后面填充的圆圈背景色是可以覆盖之前画的圆圈的背景色。

def circle(x, y, r, color):

# 为了保证画出的圆够圆,所以我们把圆的边设置的多一些

n = 36

angle = 360 / n

pi = 3.1415926

# 周长

c = 2 * pi * r

# 每条边的长度

l = c / n

# 起始位置

start_x = x - l / 2

start_y = y + r

# 移动画笔

setpen(start_x, start_y)

# 选择画笔颜色

t.pencolor(color)

# 选择背景色

t.fillcolor(color)

# 填充

t.begin_fill()

for i in range(n):

t.forward(l)

t.right(angle)

t.end_fill()

接下来就是画里面那个白色的五角星了,这里就不注释了,因为和画圈的过程差不多。

def five_star(l):

setpen(0, 0)

t.setheading(162)

t.forward(150)

t.setheading(0)

t.fillcolor('WhiteSmoke')

t.begin_fill()

t.hideturtle()

t.penup()

for i in range(5):

t.forward(l)

t.right(144)

t.end_fill()

主函数:

def sheild():

circle(0, 0, 300, 'red')

circle(0, 0, 250, 'white')

circle(0, 0, 200, 'red')

circle(0, 0, 150, 'blue')

five_star(284)

if __name__ == '__main__':

sheild()

# 结束乌龟图

turtle.done()

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 硬核!C语言八大排序算法,附动图和详细代码解释!

    排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。

    诸葛青云
  • C语言天才!想法奇异?还是逼格满满?一份国外C语言写的传奇简历

    作者用代码更新了自己的简历,是不是很接地气,特符合程序员的逼格。这是一份可读可执行的ç语言源文件,也是作者编码风格的体现。

    诸葛青云
  • 用Python炒股,你不可以我能行!网友:略牛

    由于小编并无深厚的数学功底也无深厚的金融知识, 所以不会在本文中引用各种高深的投资模型或数学模型。

    诸葛青云
  • 两个openssh间免密码登录

    以下针对的是openssh,而不是ssh,也不是ssh2。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解...

    一见
  • 安装MPTCP内核 --基于centos定制系统

    如图可以看到有两个系统中已经有两个内核并存了,分别是(4.19.55.mptcp)和(3.10.107-1-tlinux2-0046)

    angelo
  • linux 编译安装python3.6的教程详解

    1. 首先去官网 https://www.python.org/downloads/source/下载 Gzipped source tarball

    砸漏
  • GE医疗在华推出革命性IGS智能移动介入“机器人”

    近日,GE医疗中国隆重推出业界革命性的IGS智能移动介入机器人——DiscoveryIGS730,并发布了心脏、神经、血管、肿瘤四大介入临床解决方案及复合手术室...

    机器人网
  • 接口测试基础——第6篇unittest模块(三)

    用户2149234
  • 企业将如何克服云存储的安全挑战

    在这个数据时代,每时每秒都有的数据产生。而从惠普的一份报告显示,到2015年,数据将以10的21次方的PB级的量增长。另外,到了2020年,将有一万亿多个应用在...

    静一
  • leetcode-120-三角形最小路径和

    如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。

    chenjx85

扫码关注云+社区

领取腾讯云代金券