用Python+turtle库实现生成五星红旗,画画第四弹(附源码)
Posted 小雁子学Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python+turtle库实现生成五星红旗,画画第四弹(附源码)相关的知识,希望对你有一定的参考价值。
前言
用python画个五星红旗,聊表内心对革命老前辈们的敬意吧~
效果展示
开发工具
Python版本: 3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
这里我们主要使用到的库是pygame和turtle库,其中pygame库主要用于播放背景音乐,而turtle库则主要用于画五星红旗。
首先,是初始化我们的屏幕和海龟对象(注:五星红旗的规格为长:宽=3:2):
# 红旗长宽比为3: 2
width, height = 30 * num_times, 20 * num_times
# 初始化屏幕和海龟对象
screen = turtle.Screen()
t = turtle.Turtle()
t.hideturtle()
t.speed(1)
然后画红旗:
t.penup()
t.goto(-width/2, height/2)
t.pendown()
t.begin_fill()
t.fillcolor('red')
t.fd(width)
t.right(90)
t.fd(height)
t.right(90)
t.fd(width)
t.right(90)
t.fd(height)
t.right(90)
t.end_fill()
之后就是画5颗黄色的五角星啦:
'''画多边形'''
def drawPolygon(t, side_len, num_angles=5, color=None):
if color is not None:
t.begin_fill()
t.fillcolor(color)
for i in range(num_angles):
t.forward(side_len)
t.left(360 / num_angles)
t.forward(side_len)
t.right(720 / num_angles)
if color is not None:
t.end_fill()
'''画5角星'''
def draw5AnglesStar(t, start_pos, end_pos, radius, color=None):
side_len = radius * math.sin(math.pi/5) / math.sin(math.pi*2/5)
t.left(math.degrees(math.atan2(end_pos[1]-start_pos[1], end_pos[0]-start_pos[0])))
t.penup()
t.goto(start_pos)
t.fd(radius)
t.pendown()
t.right(math.degrees(math.pi * 9 / 10))
drawPolygon(t, side_len, 5, color)
draw5AnglesStar(t, start_pos=(-10*num_times, 5*num_times), end_pos=(-10*num_times, 8*num_times), radius=3*num_times, color='yellow')
for pos in [(-5, 8), (-3, 6), (-3, 3), (-5, 1)]:
draw5AnglesStar(t, start_pos=(pos[0]*num_times, pos[1]*num_times), end_pos=(-10*num_times, 5*num_times), radius=1*num_times, color='yellow')
最后,再加上国歌作为背景音乐:
'''播放背景音乐'''
def playBGM(bgm_path):
pygame.mixer.init()
bgm = pygame.mixer.music.load(bgm_path)
pygame.mixer.music.play(-1)
文章到这里就结束了,感谢你的观看,Python画画暂停更新,下个系列分享图像特效
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
All done~私信获取完整源代码。。
以上是关于用Python+turtle库实现生成五星红旗,画画第四弹(附源码)的主要内容,如果未能解决你的问题,请参考以下文章