两个向量的点积和交点问题

3

我一直在阅读有关向量交集的博客。在这篇博客中,我发现了类似于以下内容:

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中作为交点的分数)。请问为什么垂直乘积之间的除法是t?我已经阅读了一些其他信息,但无法弄清楚。附上完整的博客文章链接:http://www.tonypa.pri.ee/vectors/tut05.html。谢谢。
1个回答

2

v1和v2的乘积等于由这些向量形成的平行四边形的面积。对于v2和v3的乘积也是如此。两个平行四边形有共同的底(v2),但高度不同。高度1 = v1.ΔY,高度2 = v3.ΔY = v1.ΔY * t。因此,面积比率(和乘积比率)为t。


感谢MBo的回答,但是我指出的教程讲解了v1法线和v2的点积,以及v3法线和v2的点积,这就是他所谓的Perp点积。也许我没有完全理解你的意思,但我仍然不明白你的回答与这个人计算t的方式之间的关系。 - Notbad
垂直点积是叉积的一个组成部分,或者说是二维情况下的叉积。请参考这里的“矩阵表示法”和“几何意义”部分:http://en.wikipedia.org/wiki/Cross_product - MBo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接