绘制一个如下图所示的魔法阵,颜色可以自定义。 先绘制一个边长为500的正方形背景; 接着画大小两个圆,半径分别为200和150; 然后画两个六芒星(由两个正三角形组成),外接圆半径为230和160; 最后在正中心绘制一个圆点,直径为100。用python实现
时间: 2024-11-06 12:36:29 浏览: 18
为了在Python中使用matplotlib库来绘制这个魔法阵,首先确保已经安装了`matplotlib`。以下是一个示例代码,按照您的描述实现了这个图形:
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置绘图尺寸
fig, ax = plt.subplots(figsize=(8, 8))
# 绘制背景正方形
ax.add_patch(plt.Rectangle((0, 0), 500, 500, fill=False, edgecolor='black', linewidth=2))
# 定义颜色
colors = ['red', 'blue'] # 可以自定义颜色
# 绘制大圆和小圆
circle_large = plt.Circle((250, 250), 200, color=colors[0])
circle_small = plt.Circle((250, 250), 150, color=colors[1])
ax.add_artist(circle_large)
ax.add_artist(circle_small)
# 绘制两个六芒星(这里简化为等边三角形)
triangle_vertices = [(0, -np.sqrt(3)/2), (0, np.sqrt(3)/2), (1, 0)]
for radius, color in zip([230, 160], colors):
for i in range(2):
x = [radius * v[0] + 250 for v in triangle_vertices]
y = [radius * v[1] + 250 for v in triangle_vertices]
ax.plot(x, y, color=color, marker='.', linestyle='')
# 绘制中心圆点
center_dot = plt.Circle((250, 250), 50, color='black')
ax.add_artist(center_dot)
# 调整图像比例并去除坐标轴
ax.set_aspect('equal', 'box')
ax.axis('off')
# 显示图形
plt.show()
阅读全文