(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()
'[Python][Physics]' 카테고리의 다른 글
[Python][Physics]#06 가우스 발산 정리(Gauss's Divergence Theorem)(시각화) (0) | 2023.05.04 |
---|---|
[Python][Physics]#05 벡터 필드 전기장(Electric Field, E)에 대한 라플라시안(Laplacian) 연산자 계산(시각화) (0) | 2023.05.04 |
[Python][Physics]#04 스칼라 함수 f(x, y, z)에 대한 라플라시안(Laplacian) 연산자 정의(시각화) (0) | 2023.05.04 |
[Python][Physics]#03 전기장 벡터 E의 회전 또는 회전 크기(시각화) (3) | 2023.05.04 |
[Python][Physics]#02 전기장 벡터의 3차원(시각화) (2) | 2023.05.04 |