我一直在阅读关于向量交集的博客。在这篇博客中我找到了类似的东西:
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
提前致谢。
答案 0 :(得分:2)
v1和v2的乘积等于由这些矢量形成的平行四边形的面积。 v2和v3的产品也是如此。两个平行四边形具有共同的基础(v2),但具有不同的高度。 Height1 = v1.DeltaY和height2 = v3.DeltaY = v1.DeltaY * t。因此面积比(和产品比)是t