点和线之间的最小垂直向量

use*_*215 8 vector

好吧,所以我试图让分离轴定理算法工作(用于碰撞检测),我需要找到点和线之间的最小垂直向量.我不是要求最小垂直距离(我知道如何找到),而是要求与该距离具有相同幅度的矢量,该矢量从线上的任意点和点开始.我知道点的位置,线上的一个点,以及给出线的方向的单位矢量.

我尝试做的是首先找到点和线之间的最小距离.

下一部分令人困惑,但我:1)找到点和线之间的向量我知道2)找到线上的点和线上的点之间的向量加上给出方向的单位向量第3行)取这两个向量的交叉乘积(我称之为交叉乘积A)4)取出单位向量的叉积,给出行的方向和来自叉积A的向量(我称之为交叉产物B)5)标准化的交叉产物B 6)按比例缩放交叉产物B.

无论如何,整个尝试都失败了.谁能告诉我我应该如何找到这个载体?

Pab*_*blo 30

如果我理解你的问题,我相信这就是你要找的:

P - point
D - direction of line (unit length)
A - point in line

X - base of the perpendicular line

    P
   /|
  / |
 /  v
A---X----->D

(P-A).D == |X-A|

X == A + ((P-A).D)D
Desired perpendicular: X-P
Run Code Online (Sandbox Code Playgroud)

其中句点代表点积和| XA | 意味着规模.