深圳大学python 五星红旗
时间: 2024-12-28 21:15:29 浏览: 10
### 使用Python绘制五星红旗
为了实现这一目标,可以采用`matplotlib`库来完成绘图工作。下面是一个简单的例子,展示如何利用Python代码绘制一面具有代表性的五星红旗。
```python
import matplotlib.pyplot as plt
import numpy as np
def draw_flag():
fig, ax = plt.subplots()
# 设置背景颜色为中国红
rect = plt.Rectangle((0, 0), width=3, height=2, fill=True, color='#DE2910')
ax.add_patch(rect)
# 绘制大五角星
star_large = [(0.5, 1.5)]
angle = np.linspace(0, 2 * np.pi, 6)[:-1] + np.deg2rad(-18)
for a in angle:
x = 0.5 + 0.4 * np.cos(a)
y = 1.5 + 0.4 * np.sin(a)
star_large.append((x, y))
poly = plt.Polygon(star_large, closed=True, edgecolor='yellow', facecolor='yellow')
ax.add_patch(poly)
# 小星星的位置和角度调整参数
small_star_positions = [
(0.7, 1.2),
(0.8, 0.9),
(0.9, 0.6),
(0.95, 0.3)
]
angles_degrees = [-36, -18, 0, 18]
for pos, ang in zip(small_star_positions, angles_degrees):
star_small = []
angle_rad = np.deg2rad(ang)
for a in np.linspace(0, 2*np.pi, 6)[:-1]:
rads = a + angle_rad
x = pos[0] + 0.1 * np.cos(rads)
y = pos[1] + 0.1 * np.sin(rads)
star_small.append((x, y))
poly = plt.Polygon([pos]+star_small[::-1], closed=True, edgecolor='yellow', facecolor='yellow')
ax.add_patch(poly)
ax.set_xlim(0, 3)
ax.set_ylim(0, 2)
ax.axis('off') # 关闭坐标轴显示
plt.show()
draw_flag()
```
此段代码通过定义函数`draw_flag()`实现了国旗图案的创建过程[^1]。该程序首先设置了画布大小以及整体的颜色填充;接着按照标准比例放置了一颗较大的黄色五角星位于左上角,并围绕其分布四颗较小尺寸的同色系五角星。最后调用了Matplotlib中的图形渲染功能完成了整个图像的呈现。
阅读全文