国旗是一个国家的象征,它可以反映一个国家的特色和传统,国旗起源于近代的欧洲,是一个国家主权意识不断增强后的必然产物,本文我们使用 Python 来画几面国旗,使用的 Python 库是大家比较熟悉的 turtle。
五星红旗
五星红旗是*的国旗,它是由四颗小的黄五角星环绕一颗大的黄五角星组成的,底色为红色,实现代码如下:
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
|
turtle.setup( 600 , 400 , 0 , 0 )
turtle.bgcolor( "red" )
turtle.fillcolor( "yellow" )
turtle.color( 'yellow' )
turtle.speed( 10 )
# 主星
turtle.begin_fill()
turtle.up()
turtle.goto( - 280 , 100 )
turtle.down()
for i in range ( 5 ):
turtle.forward( 150 )
turtle.right( 144 )
turtle.end_fill()
# 副星
turtle.begin_fill()
turtle.up()
turtle.goto( - 100 , 180 )
turtle.setheading( 305 )
turtle.down()
for i in range ( 5 ):
turtle.forward( 50 )
turtle.left( 144 )
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto( - 50 , 110 )
turtle.setheading( 30 )
turtle.down()
for i in range ( 5 ):
turtle.forward( 50 )
turtle.right( 144 )
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto( - 40 , 50 )
turtle.setheading( 5 )
turtle.down()
for i in range ( 5 ):
turtle.forward( 50 )
turtle.right( 144 )
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto( - 100 , 10 )
turtle.setheading( 300 )
turtle.down()
for i in range ( 5 ):
turtle.forward( 50 )
turtle.left( 144 )
turtle.end_fill()
turtle.hideturtle()
turtle.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
t.colormode( 255 )
rcblue = ( 4 , 0 , 174 )
rcred = ( 254 , 0 , 0 )
def ol(r):
na = 15 / 180 * math.pi
ol = 2 * r * math.cos(na)
ol = int ( round (ol))
return ol
def loop(r):
t.fd(ol(r))
t.right( 150 )
def main0(a,b):
t.color(rcred)
t.penup()
t.goto( - a / 2 ,b / 2 )
t.pendown()
t.begin_fill()
t.goto( - a / 2 , - b / 2 )
t.goto(a / 2 , - b / 2 )
t.goto(a / 2 ,b / 2 )
t.end_fill()
t.penup()
t.goto( - a / 4 ,b / 4 )
t.pendown()
def main1(a1,b1):
t.color( 'gray' ,rcblue)
t.penup()
t.right( 90 )
t.fd(b1 / 2 )
t.left( 90 )
t.pendown()
t.begin_fill()
t.fd(a1 / 2 )
t.left( 90 )
t.fd(b1)
t.left( 90 )
t.fd(a1)
t.left( 90 )
t.fd(b1)
t.left( 90 )
t.fd(a1 / 2 )
t.end_fill()
t.penup()
t.goto( - a / 4 ,b / 4 )
t.seth( 0 )
t.pendown()
def main2(r):
t.pensize = 20
t.color( 'white' , 'white' )
t.penup()
t.fd(r)
t.right( 180 - 30 / 2 )
t.pendown()
t.begin_fill()
for i in range ( 12 ):
loop(r)
t.end_fill()
t.penup()
t.goto( - a / 4 ,b / 4 )
t.seth( 0 )
t.pendown()
def main3(r1,r2):
t.color(rcblue, rcblue)
t.begin_fill()
t.up()
t.right( 90 )
t.fd(r1)
t.left( 90 )
t.pd()
t.circle(r1)
t.end_fill()
t.penup()
t.goto( - a / 4 ,b / 4 )
t.pendown()
t.color( 'white' , 'white' )
t.begin_fill()
t.pu()
t.right( 90 )
t.fd(r2)
t.left( 90 )
t.pd()
t.circle(r2)
t.end_fill()
t.penup()
t.goto( - a / 4 ,b / 4 )
t.seth( 0 )
t.pendown()
def main(a,b):
a1 = a / 2
b1 = b / 2
r = a1 / 4
r2 = a1 / 8
r1 = b1 * 17 / 80
main0(a,b)
main1(a1,b1)
main2(r)
main3(r1,r2)
a = 1020
b = 680
t.setup( 1100 , 700 , 100 , 0 )
|
红底白十字旗
红底白十字旗是瑞士的国旗,与其他国家有点不同,瑞士的国旗形状是正方形的,代表了该国坚守中立的政策,实现代码如下:
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
|
def draw_crossshaped(aTurtle, width = 0 , height = 0 , color = None ):
aTurtle = turtle.Turtle()
aTurtle.hideturtle()
aTurtle.penup()
aTurtle.goto( 30 , 50 )
aTurtle.begin_fill()
aTurtle.fillcolor(color)
for i in range ( 4 ):
aTurtle.pendown()
aTurtle.fd(width)
aTurtle.rt( 90 )
aTurtle.fd(height)
aTurtle.rt( 90 )
aTurtle.fd(width)
aTurtle.lt( 90 )
aTurtle.end_fill()
def draw_RQ(times = 20.0 ):
width, height = 26 * times, 26 * times
window = turtle.Screen()
aTurtle = turtle.Turtle()
aTurtle.hideturtle()
aTurtle.speed( 10 )
aTurtle.penup()
aTurtle.goto( - width / 2 , height / 2 )
aTurtle.pendown()
aTurtle.begin_fill()
aTurtle.fillcolor( 'red' )
aTurtle.fd(width)
aTurtle.right( 90 )
aTurtle.fd(height)
aTurtle.right( 90 )
aTurtle.fd(width)
aTurtle.right( 90 )
aTurtle.fd(height)
aTurtle.right( 90 )
aTurtle.end_fill()
draw_crossshaped(aTurtle, width = 80 , height = 80 , color = 'white' )
window.exitonclick()
|
实现效果如下:
星条旗
星条旗是美国的国旗,由两部分组成,旗的左上方蓝底上排列着 50 颗白色的星,其余部分是 13 道红白相间的条子,实现代码如下:
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
|
# 画条纹
def drawSquar():
turtle.color( 'black' , 'red' )
turtle.begin_fill()
for i in range ( 7 ):
turtle.forward( 600 )
turtle.left( 90 )
turtle.forward( 350 / 13 )
turtle.left( 90 )
turtle.forward( 600 )
turtle.right( 90 )
turtle.forward( 350 / 13 )
turtle.right( 90 )
turtle.end_fill()
# 画左上角的小矩形
def drawSmallsqure():
turtle.color( 'blue' )
turtle.begin_fill()
turtle.left( 90 )
turtle.forward( 350 / 2 )
turtle.left( 90 )
turtle.forward( 300 )
turtle.left( 90 )
turtle.forward( 350 * 7 / 13 )
turtle.left( 90 )
turtle.forward( 300 )
turtle.end_fill()
# 画左上角的星星
def drawSrarts():
x = - 10
y = 0
for k in range ( 4 ):
x = - 15
for i in range ( 6 ):
turtle.goto(x, y)
turtle.color( 'white' )
turtle.begin_fill()
for j in range ( 5 ):
turtle.left( 144 )
turtle.forward( 20 )
x - = 50
turtle.end_fill()
y + = 350 / 13 * 2
x = - 10
y = 350 / 13
for i in range ( 3 ):
x = - 35
for j in range ( 5 ):
turtle.goto(x, y)
turtle.color( 'white' )
turtle.begin_fill()
for k in range ( 5 ):
turtle.left( 144 )
turtle.forward( 20 )
x - = 50
turtle.end_fill()
y + = 350 / 13 * 2
turtle.setup( 0.8 , 0.8 , - 100 , - 100 )
turtle.speed( 10 )
turtle.pu()
turtle.forward( 300 )
turtle.left( 90 )
turtle.forward( 350 / 2 )
turtle.left( 90 )
drawSquar()
turtle.home()
drawSmallsqure()
turtle.home()
drawSrarts()
turtle.hideturtle()
turtle.done()
|
实现效果如下:
总结
本文我们使用 Python 绘制了几面国旗,有兴趣的可以尝试绘制一下其他国家的国旗。
示例代码:https://github.com/JustDoPython/python-examples/tree/master/yeke/py-flag
以上就是python 绘制国旗的示例的详细内容,更多关于python 绘制国旗的资料请关注服务器之家其它相关文章!
原文链接:http://www.justdopython.com/2020/09/26/flag/?utm_source=tuicool&utm_medium=referral