2绘图(需要提供代码和结果图)(1)画出单位圆的图形。(2)画出奥运五环(3)画出一个由9个同心圆组成的靶子(4)画出一个半径为1的球体(5)画出一个半径为1的空心球,中心处有一个半径为0.1的实心小球,要求大球透明可看见里面的小球。
时间: 2024-10-14 15:04:42 浏览: 50
在Python的matplotlib库中,我们可以使用`pyplot`模块来进行绘图。这里我会给出一些基本示例代码来展示如何实现这些图形。请注意,由于文本格式限制,我将无法直接显示图像,但你可以复制粘贴这些代码到Jupyter Notebook或者其他支持matplotlib的环境中运行。
1. 单位圆:
```python
import matplotlib.pyplot as plt
import numpy as np
theta = np.linspace(0, 2 * np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)
plt.figure()
plt.plot(x, y, 'k-')
plt.axis('equal') # 保持比例尺一致,看起来像真正的圆
plt.title('单位圆')
```
2. 奥运五环:
这需要多个颜色和环形图,你可以尝试下面的代码:
```python
# 创建一个figure
plt.figure()
# 分别绘制五个环,颜色从红蓝黄黑绿
for i in range(1, 6):
r = (i - 1) / 4 + 0.25
plt.fill_between([0, 2*np.pi], [r, r], color=f"C{i}", alpha=0.7)
plt.title("奥运五环")
```
3. 同心圆靶子:
```python
plt.figure()
rings = [1, 0.8, 0.6, 0.4, 0.2]
for ring in rings:
theta = np.arange(0, 2*np.pi, 0.01)
x = ring * np.cos(theta)
y = ring * np.sin(theta)
plt.plot(x, y, 'k', linewidth=2 if i % 2 == 0 else 1)
plt.title("同心圆靶子")
```
4. 半径为1的球体:
```python
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100).reshape(-1, 1)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones_like(u), np.cos(v))
ax.plot_surface(x, y, z, cmap='viridis', rstride=10, cstride=10, alpha=0.5)
plt.title("半径为1的球体")
```
5. 空心球和小球:
```python
from matplotlib.collections import EllipseCollection
# ... 继续使用上面球体部分的代码,然后添加一个小球
inner_radius = 0.1
xc, yc = 0.5, 0.5
ec = EllipseCollection(widths=[2*inner_radius, 2*inner_radius], heights=[2*inner_radius, 2*inner_radius],
angles=np.array([-90, 90]), units='inches',
offsets=(xc-inner_radius, yc-inner_radius),
transOffset=ax.transData)
ec.set_facecolor('white')
ec.set_alpha(0.5)
ax.add_collection(ec)
plt.title("半径为1的空心球和内部小球")
```
阅读全文