香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

详解用Python练习画个美队盾牌


时间:2022-04-02 10:24 作者:admin


0 环境

python/' target='_blank'>python版本:3.6.6

操作系统:Mac OS Mojave 10.14.2

1 引言

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

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

没错,她在看美队……

这男人比我帅?……

比我有钱?……

还是比我有腔调?……

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

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

这篇文章不是Turtle的入门篇,所以关于基本的画笔使用小胖不在这篇里赘述了。有兴趣的可以留言,我会根据你们的反馈来写一篇或者一个系列。

2 实战

先来看一个效果图:

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

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

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

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()

以上所述是小编给大家介绍的用Python练习画个美队盾牌详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)