找到两点之间点的坐标?

Nic*_*ros 9 math wpf linear-algebra

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

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

也就是说,如果我的线在-50,0,0和50,0,0之间的长度为100,那么沿着线100*0.1处的点的坐标是多少?

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

Mar*_*ers 15

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

(x1, y1, z1) + p * ((x2, y2, z2) - (x1, y1, z1))
Run Code Online (Sandbox Code Playgroud)


Sim*_*mon 7

这与数学有关,但没关系.设PQ是两个给定的点,X你要寻找的点.

P + r(Q - P) = X
Run Code Online (Sandbox Code Playgroud)

r表示一个因素.

if 0 < r < 1:点x将在两点之间的线上.

而已!

编辑:

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

d² / euclidian_square_distance(P,Q) = r
Run Code Online (Sandbox Code Playgroud)

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

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