0 math 3d geometry euclidean-distance
我有一条 3D 线存在于两个已知点之间:{X1, Y1, Z1} 和 {X2, Y2, Z2}。
(X1,Y1,X1)----------(X2,Y2,Z2)
Run Code Online (Sandbox Code Playgroud)
这些点之间的直线上有一个点 (Xd,Yd,Zd),距 (X1,Y1,Z1) 的距离为 D。
(X1,Y1,X1)---D---(Xd,Yd,Zd)-----(X2,Y2,Z2)
Run Code Online (Sandbox Code Playgroud)
如何确定点(Xd,Yd,Zd)的坐标?
假设您要将距离 D 从点 1 移动到点 2 :
P1 = [ X1, Y1, Z1 ]
P2 = [ X2, Y2, Z2 ]
Run Code Online (Sandbox Code Playgroud)
线向量可以描述为:
V = P2 - P1 = [ Xv = X2 - X1, Yv = Y2 - Y1, Zv = Z2 - Z1 ]
Run Code Online (Sandbox Code Playgroud)
线的长度可以确定为:
VL = SQRT(Xv^2 + Yv^2 + Zv^2) // ^2 = squared
Run Code Online (Sandbox Code Playgroud)
线的向量(又名单位向量)可以确定为:
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Run Code Online (Sandbox Code Playgroud)
目标点PD可确定为:
Pd = P1 + D * v // Starting from P1 advance D times v
Run Code Online (Sandbox Code Playgroud)
请注意,P1 和 v 是向量,D 是标量