1,标准的五星红旗是怎样的?
标准的五星红旗的旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右,且各有一角尖正对大星中心。
有了这张图,相信大家能更好的了解我们的五星红旗!
2,如何用python来画出五星红旗?
首先我们要导入turtle库和math库
import turtle as t
import math
先把画布搞出来,这样我们就可以在画布上作画,并且设置好一个小方格的长度
t.setup(950, 600) #先设置一个大大的画布
u = 20 #一个小方格长度为20
再把国旗的红色背景画好
t.begin_fill() #用于填充整块区域,从t.begin_fill()开始到t.end_fill()结束。对从起始点到终点的连线和轨迹所围成的闭合区域填充颜色
t.color('red') #红旗的背景为红色的
t.goto(-15*u, 10*u) #以下为红旗四个顶点的坐标
t.goto(15*u, 10*u)
t.goto(15*u, -10*u)
t.goto(-15*u, -10*u)
t.goto(-15*u, 10*u)
t.end_fill()
再画出五个五角星,先画出第一个大的五角星(先给你们看示意图,这样你们更能理解代码,画的很丑,请见谅)
#将海龟挪到1星顶点且指向中心
t.color('yellow')
t.pu() # 抬起画笔
t.goto(-10*u, 8*u) #海龟先到达大的五星红旗的顶点
t.seth(-90) #然后头朝下
t.pd() # 放下画笔
t.left(18) # 海龟以自身方向为标准,左转18°
t.begin_fill()
for i in range(5): # 画出大的五角星
t.fd(6*u*math.cos(math.radians(18)))
t.right(144)
t.end_fill()
t.hideturtle() #隐藏乌龟
接着画出剩下四个五角星,由于画五角星的步骤是一样的,那我们先定义个画五角星的函数。
def drawStar(u):
t.color('yellow')
t.pd() # 放下画笔
t.left(18) # 海龟以自身方向为标准,左转18°
t.begin_fill()
for i in range(5): # 画出小的五角星
t.fd(2*u*math.cos(math.radians(18)))
t.right(144)
t.end_fill()
开始画
#画出剩下的4个小五角星
for i in range(4):
t.pu()
if i==0:
t.goto(-5*u, 8*u) #到达第一个小五角星的中心点
t.seth(math.degrees(math.atan(3/5)))
elif i==1:
t.goto(-3*u, 6*u) #到达第二个小五角星的中心点
t.seth(math.degrees(math.atan(1/7)))
elif i==2:
t.goto(-3*u, 3*u) #到达第三个小五角星的中心点
t.seth(-math.degrees(math.atan(2/7)))
else:
t.goto(-5*u, 1*u) #到达第四个小五角星的中心点
t.seth(-math.degrees(math.atan(4/5)))
t.bk(u)
drawStar(u)
t.ht()
画好了,下面看结果