首页 文章

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

提问于
浏览
7

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

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

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

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

2 回答

  • 26

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

    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
    

    其中句点代表点积和| X-A |意味着规模 .

  • 3

    enter image description here

    从上图中,你有:

    q = p + s --> s = q - p = q - (p2-p1) = q + p1 - p2
    
    ==> s^ = |q - p2 - p1| / |s|   (unitary vector)
    
    Also:   |s| = |q| sin c = |q|sin(b-a)
    
    b = arcsin (qy / |q|); a = arcsin( p1y / |p1| )
    
    where: |q| = (qx^2 + qy^2)^1/2
    

相关问题