python五星红旗
以下为一串python的五星红旗代码供参考
点击查看代码
`import turtle
import math
# 设置画布
screen = turtle.Screen()
screen.setup(480, 320) # 设置分辨率为 480x320
screen.bgcolor("white")
#screen.title("五星红旗")
# 设置画笔
flag = turtle.Turtle()
flag.speed(0) # 设置画笔速度为最快
flag.penup() # 提起画笔,避免画出线条
# 绘制红色矩形
def draw_rectangle():
flag.goto(-240, 160) # 定位到左上角
flag.pendown()
flag.color("red")
flag.begin_fill()
for _ in range(2):
flag.forward(480) # 宽度
flag.right(90)
flag.forward(320) # 高度
flag.right(90)
flag.end_fill()
flag.penup()
# 绘制五角星
def draw_star(center, size, angle):
flag.goto(center)
flag.setheading(angle) # 设置五角星的初始角度
flag.pendown()
flag.color("yellow")
flag.begin_fill()
for _ in range(5):
flag.forward(size)
flag.right(144)
flag.end_fill()
flag.penup()
# 绘制大五角星
def draw_big_star():
center = (-180, 120) # 大五角星的中心点
draw_star(center, 50, -72) # 大五角星的大小为 50,初始角度为 -72 度
return center
# 绘制小五角星
def draw_small_stars(big_star_center):
# 小五角星的中心点位置(根据国旗标准)
small_stars_centers = [
(-120, 140), # 第一个小五角星
(-90, 110), # 第二个小五角星
(-90, 70), # 第三个小五角星
(-120, 50) # 第四个小五角星
]
for center in small_stars_centers:
# 计算小五角星的旋转角度
dx = big_star_center[0] - center[0]
dy = big_star_center[1] - center[1]
angle = math.degrees(math.atan2(dy, dx)) # 计算角度
draw_star(center, 20, angle) # 小五角星的大小为 20
# 绘制国旗
draw_rectangle()
big_star_center = draw_big_star() # 获取大五角星的中心点
draw_small_stars(big_star_center) # 根据大五角星的中心点绘制小五角星
# 隐藏画笔
flag.hideturtle()
# 保持窗口
screen.mainloop()`

浙公网安备 33010602011771号