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()`
![](https://img2024.cnblogs.com/blog/3608895/202503/3608895-20250309201349480-2028718057.png)
posted @ 2025-03-09 20:14  bolun123  阅读(396)  评论(0)    收藏  举报