# 第25期-画国旗

Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。

# 1 问题描述

按照要求使用turtle库画出图形
中华人民共和国国旗是五星红旗,为左上角镶有五颗黄色五角星的红色旗帜,旗帜图案中的四颗小五角星围绕在一颗大五角星右侧呈半环形。红色的旗面象征革命,五颗五角星及其相互联系象征着中国共产党领导下中国人民的团结。该旗的设计者是曾联松,是一名来自浙江瑞安的普通工人。
image.png

# 2 解题思路

为便于确定五星之位置,先将旗面对分为四个相等的长方形,将左上方之长方形上下划为十等分,左右划为十五等分。
大五角星的中心点,在该长方形上五下五、左五右十之处。其画法为:以此点为圆心,以三等分为半径作一圆。在此圆周上,定出五个等距离的点,其一点须位于圆之正上方。然后将此五点中各相隔的两点相联,使各成一直线。此五直线所构成之外轮廓线,即为所需之大五角星。五角星之一个角尖正向
四颗小五角星的中心点,第一点在该长方形上二下八、左十右五之处,第二点在上四下六、左十二右三之处,第三点在上七下三、左十二右三之处,第四点在上九下一、左十右五之处。其画法为:以以上四点为圆心,各以一等分为半径,分别作四个圆。
如下图所示
image.png

# 3 解题方法

# 画国旗

import turtle as t

t.penup()
t.goto(-330,220)
t.pendown()
a=1
t.fillcolor('red')
t.color('red')
t.begin_fill()
while a<=4:
    if a%2==1:
        t.fd(660)
    else:
        t.fd(440)
    t.rt(90)
    a+=1
t.end_fill()
#画五角星
t.penup()
t.goto(-286,132)
b=1
t.fillcolor('yellow')
t.color('yellow')
t.begin_fill()
while b<=5:
    t.fd(132)
    t.right(144)
    b+=1
t.end_fill()

t.penup()
t.goto(-88,176)
b=1
t.fillcolor('yellow')
t.begin_fill()
t.right(156)
while b<=5:
    t.fd(44)
    t.right(144)
    b+=1
t.end_fill()

t.penup()
t.goto(-88,132)
b=1
t.fillcolor('yellow')
t.begin_fill()
t.right(180)
while b<=5:
    t.fd(44)
    t.right(144)
    b+=1
t.end_fill()

t.penup()
t.goto(-66,88)
b=1
t.fillcolor('yellow')
t.begin_fill()
t.right(90)
while b<=5:
    t.fd(44)
    t.right(144)
    b+=1
t.end_fill()

t.penup()
t.goto(-88,22)
b=1
t.fillcolor('yellow')
t.begin_fill()
t.right(90)
while b<=5:
    t.fd(44)
    t.right(144)
    b+=1
t.end_fill()

t.penup()
t.goto(500,0)
t.done()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

第1行: 引入turtle画图库并简化为t来表示
第3-17行: 画出660×440的长方形作为并填充红色作为国旗总体样式
第19-29行: 找准第一个五角星坐标并画图且填充黄色
第31-41行: 找准第二个五角星坐标并画图且填充黄色
第43-53行: 找准第三个五角星坐标并画图且填充黄色
第55-65行: 找准第四个五角星坐标并画图且填充黄色
第67-77行: 找准第五个五角星坐标并画图且填充黄色
第79-81行: 将画笔移出国旗外并开始作图

代码运行结果为:
image.png

这里用到了turtle.circle函数,简单讲解下这个函数:
turtle.circle()函数
语法:
turtle.circle(radius, extent=None, steps=None)
参数说明:
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。 第24期-画图形 (opens new window)中我们同样讲解了用turtle库方法来画五角星以及长方形,忘记了的小伙伴可以查看哦~

# 4 视频解析

高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码
AI大学堂公众号.png

更新于: 12/28/2021, 7:43:14 AM