Math 确定3D中的点坐标

Math 确定3D中的点坐标,math,3d,geometry,euclidean-distance,Math,3d,Geometry,Euclidean Distance,我有一条存在于3d中的线,它位于两个已知点之间:{X1,Y1,Z1}和{X2,Y2,Z2} 我也知道,对于其中一个点,我有一定的距离:D 从{X1,Y1,Z1}移动D后,我如何确定我所在点的坐标 谢谢首先,确定线段的长度: d=sqrt((X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2)) 将D从P1=(X1,Y1,Z1)移动到P2=(X2,Y2,Z2)。这让你明白了(X3,Y3,Z3): 把它展开成3个方程,X,Y,Z各一个 这是因为您是P1和P2之间的D/D。检查:假设D=D。然

我有一条存在于3d中的线,它位于两个已知点之间:{X1,Y1,Z1}和{X2,Y2,Z2}

我也知道,对于其中一个点,我有一定的距离:D

从{X1,Y1,Z1}移动D后,我如何确定我所在点的坐标


谢谢

首先,确定线段的长度:

d=sqrt((X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2))
将D从P1=(X1,Y1,Z1)移动到P2=(X2,Y2,Z2)。这让你明白了(X3,Y3,Z3):

把它展开成3个方程,X,Y,Z各一个


这是因为您是P1和P2之间的D/D。检查:假设D=D。然后您应该正好位于P2处。

首先,确定线段的长度:

d=sqrt((X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2))
将D从P1=(X1,Y1,Z1)移动到P2=(X2,Y2,Z2)。这让你明白了(X3,Y3,Z3):

把它展开成3个方程,X,Y,Z各一个


这是因为您是P1和P2之间的D/D。检查:假设D=D。那么你应该正好在P2处。

取两点之间的向量

<X2-X1, Y2-Y1, Z2-Z1>

将其转换为一个单位向量,指向同一方向,但长度为1。通过除以两点之间的距离来实现:

         <X2-X1, Y2-Y1, Z2-Z1>
---------------------------------------
sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

---------------------------------------
sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2)
然后乘以D,再加上你原来的点,得到新的点

                            <X2-X1, Y2-Y1, Z2-Z1>
(X1, Y1, Z1) + D * ---------------------------------------
                   sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

(X1,Y1,Z1)+D*---------------------------------------
sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2)

取两点之间的向量

<X2-X1, Y2-Y1, Z2-Z1>

将其转换为一个单位向量,指向同一方向,但长度为1。通过除以两点之间的距离来实现:

         <X2-X1, Y2-Y1, Z2-Z1>
---------------------------------------
sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

---------------------------------------
sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2)
然后乘以D,再加上你原来的点,得到新的点

                            <X2-X1, Y2-Y1, Z2-Z1>
(X1, Y1, Z1) + D * ---------------------------------------
                   sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

(X1,Y1,Z1)+D*---------------------------------------
sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2)

假设要将距离D从点1移动到点2:

P1 = [ X1, Y1, Z1 ]
P2 = [ X2, Y2, Z2 ]
线向量可以描述为:

V = P2 - P1 = [ Xv = X2 - X1, Yv = Y2 - Y1, Zv = Z2 - Z1 ]
线路长度可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v
线的相对单位向量可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v
目标点PD可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v

请注意,P1和v是矢量,D是标量,假设要将距离D从点1移动到点2:

P1 = [ X1, Y1, Z1 ]
P2 = [ X2, Y2, Z2 ]
线向量可以描述为:

V = P2 - P1 = [ Xv = X2 - X1, Yv = Y2 - Y1, Zv = Z2 - Z1 ]
线路长度可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v
线的相对单位向量可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v
目标点PD可确定为:

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared
v = V / VL = [Xv / VL, Yv / VL, Zv / VL]
Pd = P1 + D * v // Starting from P1 advance D times v

请注意,P1和v是向量,D是标量,这是一个线性组合问题:

距离=距离(p1,p2)

给出了距离D

f=D/dist(直线SEG(p1,p2)内点D的分数坐标)


pD=LinearCombo(1-f,p1,f,p2)(点距离D与p1的坐标)

这是一个线性组合问题:

距离=距离(p1,p2)

给出了距离D

f=D/dist(直线SEG(p1,p2)内点D的分数坐标)


pD=LinearCombo(1-f,p1,f,p2)(点距离D与p1的坐标)

嗯?我根本不懂你的问题。我也是,在D方之后,一切都变得模糊了。我想他是想把D距离从点1移到点2。使用线的参数形式吗?我一点也不懂你的问题。我也是,在D方之后,一切都变得模糊了。我想他是想把D距离从点1移到点2.使用线的参数化形式