我一直在阅读有关向量交集的博客。在这个博客中,我发现了这样的事情:

v3={vx:v2.p0.x-v1.p0.x, vy:v2.p0.y-v1.p0.y};
var t=perP(v3, v2)/perP(v1, v2);
ip={};
ip.x=v1.p0.x+v1.vx*t;
ip.y=v1.p0.y+v1.vy*t;

function perP(va, vb)
{
    pp = va.vx*vb.vy - va.vy*vb.vx;
    return pp;
}

这就是他们如何计算向量 v2 与 v1 的交集。我不明白的部分是 t 计算(即 v2 上作为交点的分数)。

谁能解释为什么 perp 产品之间的划分是 t?一直在阅读一些其他信息等......但无法弄清楚。

P.D:完整的博客文章是:http://www.tonypa.pri.ee/vectors/tut05.html

提前致谢。

最佳答案

v1 和 v2 的乘积等于这些向量形成的平行四边形的面积。 v2 和 v3 的乘积也是如此。两个平行四边形有共同的底(v2),但高度不同。 Height1 = v1.DeltaY 和 height2 = v3.DeltaY = v1.DeltaY * t。所以面积比(和产品比)是 t

关于math - Perp 点积和 2 个向量之间的交点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9144974/

10-12 00:10
查看更多