当前位置:   article > 正文

如何用python来画出标准的五星红旗

如何用python来画出标准的五星红旗

1,标准的五星红旗是怎样的?

标准的五星红旗的旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右,且各有一角尖正对大星中心。

 有了这张图,相信大家能更好的了解我们的五星红旗!

2,如何用python来画出五星红旗?

首先我们要导入turtle库和math库

  1. import turtle as t
  2. import math

先把画布搞出来,这样我们就可以在画布上作画,并且设置好一个小方格的长度

  1. t.setup(950, 600) #先设置一个大大的画布
  2. u = 20 #一个小方格长度为20

再把国旗的红色背景画好

  1. t.begin_fill() #用于填充整块区域,从t.begin_fill()开始到t.end_fill()结束。对从起始点到终点的连线和轨迹所围成的闭合区域填充颜色
  2. t.color('red') #红旗的背景为红色的
  3. t.goto(-15*u, 10*u) #以下为红旗四个顶点的坐标
  4. t.goto(15*u, 10*u)
  5. t.goto(15*u, -10*u)
  6. t.goto(-15*u, -10*u)
  7. t.goto(-15*u, 10*u)
  8. t.end_fill()

再画出五个五角星,先画出第一个大的五角星(先给你们看示意图,这样你们更能理解代码,画的很丑,请见谅)

  1. #将海龟挪到1星顶点且指向中心
  2. t.color('yellow')
  3. t.pu() # 抬起画笔
  4. t.goto(-10*u, 8*u) #海龟先到达大的五星红旗的顶点
  5. t.seth(-90) #然后头朝下
  6. t.pd() # 放下画笔
  7. t.left(18) # 海龟以自身方向为标准,左转18°
  8. t.begin_fill()
  9. for i in range(5): # 画出大的五角星
  10. t.fd(6*u*math.cos(math.radians(18)))
  11. t.right(144)
  12. t.end_fill()
  13. t.hideturtle() #隐藏乌龟

接着画出剩下四个五角星,由于画五角星的步骤是一样的,那我们先定义个画五角星的函数。

  1. def drawStar(u):
  2. t.color('yellow')
  3. t.pd() # 放下画笔
  4. t.left(18) # 海龟以自身方向为标准,左转18°
  5. t.begin_fill()
  6. for i in range(5): # 画出小的五角星
  7. t.fd(2*u*math.cos(math.radians(18)))
  8. t.right(144)
  9. t.end_fill()

 开始画

  1. #画出剩下的4个小五角星
  2. for i in range(4):
  3. t.pu()
  4. if i==0:
  5. t.goto(-5*u, 8*u) #到达第一个小五角星的中心点
  6. t.seth(math.degrees(math.atan(3/5)))
  7. elif i==1:
  8. t.goto(-3*u, 6*u) #到达第二个小五角星的中心点
  9. t.seth(math.degrees(math.atan(1/7)))
  10. elif i==2:
  11. t.goto(-3*u, 3*u) #到达第三个小五角星的中心点
  12. t.seth(-math.degrees(math.atan(2/7)))
  13. else:
  14. t.goto(-5*u, 1*u) #到达第四个小五角星的中心点
  15. t.seth(-math.degrees(math.atan(4/5)))
  16. t.bk(u)
  17. drawStar(u)
  18. t.ht()

画好了,下面看结果

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/421619
推荐阅读
相关标签
  

闽ICP备14008679号