[Python][Physics]
[Python][Physics]#01 3차원 공간에서 두 점 사이의 거리(시각화)
루크1983
2023. 5. 4. 00:18
(x, y, z) 좌표를 가진 임의의 점과, (x₀, y₀, z₀) 좌표를 가진 다른 점의
3차원 유클리드 공간에서 두 점 사이의 직선 거리를 구하는 데 사용합니다.
수식 :
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# 두 점의 위치를 설정합니다.
x0, y0, z0 = 1, 2, 3
x1, y1, z1 = 4, 5, 6
# 거리 공식을 사용하여 두 점 사이의 거리를 계산합니다.
distance = np.sqrt((x1-x0)**2 + (y1-y0)**2 + (z1-z0)**2)
# 3D 그래프를 그리기 위한 설정을 합니다.
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 두 점을 그래프에 추가합니다.
ax.scatter(x0, y0, z0, c='r', marker='o')
ax.scatter(x1, y1, z1, c='g', marker='o')
# 두 점을 연결하는 선을 그래프에 추가합니다.
xs = [x0, x1]
ys = [y0, y1]
zs = [z0, z1]
ax.plot(xs, ys, zs)
# 그래프에 거리 정보를 추가합니다.
ax.text((x0+x1)/2, (y0+y1)/2, (z0+z1)/2, "distance = {:.2f}".format(distance), fontsize=12)
# 그래프를 보여줍니다.
plt.show()