用 Python 画了几面国旗
国旗是一个国家的象征,它可以反映一个国家的特色和传统,国旗起源于近代的欧洲,是一个国家主权意识不断增强后的必然产物,本文我们使用 Python 来画几面国旗,使用的 Python 库是大家比较熟悉的 turtle。
五星红旗
五星红旗是中华人民共和国的国旗,它是由四颗小的黄五角星环绕一颗大的黄五角星组成的,底色为红色,实现代码如下:
python highlighter-rouge">
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() foriinrange(5): turtle.forward(150) turtle.right(144) turtle.end_fill() # 副星 turtle.begin_fill() turtle.up() turtle.goto(-100,180) turtle.setheading(305) turtle.down() foriinrange(5): turtle.forward(50) turtle.left(144) turtle.end_fill() turtle.begin_fill() turtle.up() turtle.goto(-50,110) turtle.setheading(30) turtle.down() foriinrange(5): turtle.forward(50) turtle.right(144) turtle.end_fill() turtle.begin_fill() turtle.up() turtle.goto(-40,50) turtle.setheading(5) turtle.down() foriinrange(5): turtle.forward(50) turtle.right(144) turtle.end_fill() turtle.begin_fill() turtle.up() turtle.goto(-100,10) turtle.setheading(300) turtle.down() foriinrange(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 | defdraw_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) foriinrange(4): aTurtle.pendown() aTurtle.fd(width) aTurtle.rt(90) aTurtle.fd(height) aTurtle.rt(90) aTurtle.fd(width) aTurtle.lt(90) aTurtle.end_fill() defdraw_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 | # 画条纹defdrawSquar():turtle.color('black','red') turtle.begin_fill() foriinrange(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() # 画左上角的小矩形 defdrawSmallsqure(): 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() # 画左上角的星星 defdrawSrarts(): x=-10 y=0 forkinrange(4): x=-15 foriinrange(6): turtle.goto(x,y) turtle.color('white') turtle.begin_fill() forjinrange(5): turtle.left(144) turtle.forward(20) x-=50 turtle.end_fill() y+=350/13*2 x=-10 y=350/13 foriinrange(3): x=-35 forjinrange(5): turtle.goto(x,y) turtle.color('white') turtle.begin_fill() forkinrange(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()
|
实现效果如下:
一点红旗
一点红旗是日本的国旗,构成比较简单,就是在长方形白底中点一个大红点,实现代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | turtle.setup(width=600,height=400)# 设置画笔起点 turtle.penup() turtle.goto(0,-50) turtle.pendown() # 设置画笔属性 turtle.pensize(5) turtle.pencolor("red") turtle.fillcolor("red") # 绘制速度 turtle.speed(10) turtle.begin_fill() turtle.circle(50) turtle.end_fill() turtle.hideturtle() turtle.mainloop()
|
实现效果如下:
总结
本文我们使用 Python 绘制了几面国旗,有兴趣的可以尝试绘制一下其他国家的国旗。
示例代码:https://github.com/JustDoPython/python-examples/tree/master/yeke/py-cflag
以上是 用 Python 画了几面国旗 的全部内容,
来源链接:
utcz.com/a/129479.html