利用turtle库等函数绘制五星红旗,显示五星红旗尺寸参考国家标准尺寸进行等比例缩小,一颗大五角星和四颗小五角星的位置和角度也需符合国家标准。
实践代码:
import turtle as t
import math
t.setup(800,500,)#显示窗口大小
def juxing(m,n):#矩形
t.penup()
t.goto(-m/2,-n/2)
t.pendown()
t.pencolor("red")
t.begin_fill()
t.fillcolor("red")
for i in range (1,5):
if i%2==1:
a=m
elif i%2==0:
a=n
t.forward(a)
t.left(90)
t.end_fill()
def dawujiaoxing(b):#大五角星
t.penup()
t.goto(-b*10,b*8)#确定位置
t.right(72)
t.pendown()
d=6*b#圆的直径
a= d * math.cos(2 * math.pi * 18 / 360)#绘制尺寸
t.pencolor("yellow")
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):
t.fd(a)
t.right(144)
t.end_fill()
t.seth(0)#回到原位角度
def xiaowujiaoxing1(b):#小五角星1
t.penup()
x= -b * 5 - 5 * b / math.sqrt(34)
y= b * 8 - 3 * b / math.sqrt(34)
t.goto(x,y)#利用数学库函数确定XY的位置
jiao= math.atan(3 / 5) / 2 / math.pi * 360 + 18
t.left(jiao)#确定角度位置
t.pendown()
d=2*b
a= d * math.cos(2 * math.pi * 18 / 360)
t.pencolor("yellow")
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):#循环五次
t.fd(a)#长度
t.right(144)#角度
t.end_fill()
t.seth(0)
def xiaowujiaoxing2(b):#小五角星2
t.penup()
x= -b * 3 - 7 * b / math.sqrt(50)
y= b * 6 - b / math.sqrt(50)
t.goto(x,y)
jiao= math.atan(1 / 7) / 2 / math.pi * 360 + 18
t.left(jiao)
t.pendown()
d=2*b
a= d * math.cos(2 * math.pi * 18 / 360)
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):
t.fd(a)
t.right(144)
t.end_fill()
t.seth(0)
def xiaowujiaoxing3(b):#小五角星3
t.penup()
x= -b * 3 - 7 * b / math.sqrt(53)
y= b * 3 - 2 * b / math.sqrt(53)
t.goto(x,y)
jiao= -math.atan(2/7) / 2 / math.pi * 360 + 18
t.left(jiao)
t.pendown()
d=2*b
a= d * math.cos(2 * math.pi * 18 / 360)
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):
t.fd(a)
t.right(144)
t.end_fill()
t.seth(0)
def xiaowujiaoxing4(b):#小五角星4
t.penup()
x= -b * 5 - 5 * b / math.sqrt(41)
y= b - 4 * b / math.sqrt(41)
t.goto(x,y)
jiao= -math.atan(4/5) / 2 / math.pi * 360 + 18
t.left(jiao)
t.pendown()
d=2*b
a= d * math.cos(2 * math.pi * 18 / 360)
t.fillcolor("yellow")
t.begin_fill()
for i in range(5):
t.fd(a)
t.right(144)
t.end_fill()
t.seth(0)
def main():
m=660#长
n=m*2/3#宽
b=n/20#小格子尺寸
juxing(m,n)#调用前面写六个的自定义函数
dawujiaoxing(b)
xiaowujiaoxing1(b)
xiaowujiaoxing2(b)
xiaowujiaoxing3(b)
xiaowujiaoxing4(b)
t.hideturtle()
t.done()
main()
运行结果: