找到两点之间点的坐标?

时间:2010-05-21 22:48:20

标签: wpf math linear-algebra

在wpf中做一些3D内容 - 想要使用更简单的测试来查看一切是否正常(在移动到曲线之前)。

基本问题给出了两点x1,y1,z1和x2,y2,z2我计算了点之间的距离。但是如何找到位于该线上一定距离的另一个点(x3,y3,z3)的坐标?

即。如果我的线在-50,0,0和50,0,0之间是100长,那么沿线100 * 0.1点的坐标是多少?

我认为这是一个简单的公式,但我还没有找到它......

4 个答案:

答案 0 :(得分:15)

对于介于0和1之间的每个p,这将在线段上给出一个点:

(x1, y1, z1) + p * ((x2, y2, z2) - (x1, y1, z1))

答案 1 :(得分:7)

这与数学有关,但没关系。让PQ成为两个给定点,X是您要寻找的点。

P + r(Q - P) = X

r表示一个因素。

如果0 < r < 1:点x将位于两点之间的线上。

就是这样!

编辑:

从P(p1 / p2 / p3)找到给定距离d处的点:

d² / euclidian_square_distance(P,Q) = r

在上面提到的等式中插入r,你就明白了! :)

P.S:顺便说一下:P-Q = (Px - Qx, Py - Qy, Pz - Qz) ...我敢打赌你知道了:)

答案 2 :(得分:1)

t从0变为1.使用以下内容:

(x3, y3, z3) = (1-t)*(x1, y1, z1) + t*(x2, y2, z2)

当t = 0时,你得到第一个点。当t = 1时,你得到第二个。

此方法称为linear interpolation

答案 3 :(得分:0)

连接3d中的点的线由等式给出:

  

(x - x1)/(x2 - x1)=(y - y1)/(y2 -   y1)=(z-z1)/(z2-z1)

您的值为x1,y1,z1,x2,y2,z2。这将为您提供该线的等式。

另一个等式是

  

((X-X1)^ 2 +(Y-Y1)^ 2 +(Z-Z1)^ 2)^(1/2)=距离

求解2个方程以得到点的值。