安装包
pip install matplotlib
pip install numpy
完整代码
import matplotlib.pyplot as plt
import numpy as np
# 设置画布尺寸
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111)
# 绘制红色背景
ax.set_facecolor('red')
# 五星红旗的尺寸定义
flag_width = 30
flag_height = 20
# 大五角星的位置
big_star_center = (5, 15)
big_star_radius = 3
# 小五角星的位置和旋转角度
small_stars_centers = [(10, 18), (12, 16), (12, 13), (10, 11)]
small_star_radius = 1
small_star_angle = [30, 15, -10, -25]
# 画五角星的函数
def draw_star(ax, center, radius, angle=0, color='yellow'):
x, y = center
angles = np.linspace(0, 2 * np.pi, 6) + np.radians(angle)
points = np.array([(x + radius * np.cos(a), y + radius * np.sin(a)) for a in angles])
star = np.vstack([points[::2], points[1::2]]).reshape((-1, 2))
ax.fill(star[:, 0], star[:, 1], color=color)
# 绘制大五角星
draw_star(ax, big_star_center, big_star_radius)
# 绘制小五角星
for i in range(4):
draw_star(ax, small_stars_centers[i], small_star_radius, angle=small_star_angle[i])
# 设置边框和坐标轴不可见
ax.set_xlim(0, flag_width)
ax.set_ylim(0, flag_height)
ax.set_xticks([])
ax.set_yticks([])
ax.set_aspect(1)
# 显示国旗
plt.show()
代码解释
- 背景:使用
ax.set_facecolor('red')
设置红色背景。 - 大五角星:通过
draw_star
函数绘制大五角星,中心位于旗帜左上角的特定位置。 - 小五角星:四颗小五角星按一定角度排列,围绕大五角星绘制。
- 坐标系调整:为了使国旗比例合适,设定了
xlim
和ylim
使其符合国旗的宽高比例(3:2)。
效果图