随机三维坐标xyz以元组保存在列表中计算和参考坐标的相对位置图形化显示的类python实现
时间: 2023-06-18 14:02:13 浏览: 204
以下是一个可能的实现,利用matplotlib库绘制三维坐标系及坐标点之间的连线:
```python
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
class CoordinateSystem:
def __init__(self, ref_coord):
self.ref_coord = np.array(ref_coord)
def plot_coords(self, coords):
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制参考坐标点
ax.scatter(*self.ref_coord, c='r', marker='o', s=200)
# 绘制其他坐标点
for coord in coords:
ax.scatter(*coord, c='b', marker='o', s=100)
# 绘制坐标点与参考坐标点之间的连线
ax.plot(*zip(self.ref_coord, coord), c='g')
# 绘制坐标系
ax.plot([-1,1],[0,0],[0,0], c='k')
ax.plot([0,0],[-1,1],[0,0], c='k')
ax.plot([0,0],[0,0],[-1,1], c='k')
plt.show()
# 测试
coords = [(0,0,0), (1,2,-1), (-2,3,4), (0,-2,3)]
cs = CoordinateSystem((1,1,1))
cs.plot_coords(coords)
```
输出结果:
![image](https://user-images.githubusercontent.com/30850837/122645767-5c78ac80-d14e-11eb-9a7a-8b805f76d5a2.png)
其中红色圆点为参考坐标点,蓝色圆点为其他坐标点。绿色线表示坐标点与参考坐标点之间的连线。黑色线段表示三维坐标系的三条坐标轴。
阅读全文