任何人都可以提供一个返回TWO 2d向量的叉积函数的例子吗?我正在尝试实现此算法.
C代码会很棒.谢谢.
编辑:发现另一种方式,它适用于2D,并且很容易.
bool tri2d::inTriangle(vec2d pt) {
float AB = (pt.y-p1.y)*(p2.x-p1.x) - (pt.x-p1.x)*(p2.y-p1.y);
float CA = (pt.y-p3.y)*(p1.x-p3.x) - (pt.x-p3.x)*(p1.y-p3.y);
float BC = (pt.y-p2.y)*(p3.x-p2.x) - (pt.x-p2.x)*(p3.y-p2.y);
if (AB*BC>0.f && BC*CA>0.f)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
ken*_*ytm 16
(注意:2个向量的叉积仅在3D和7D空间中定义.)
代码计算位于xy平面上的2个向量的z分量:
vec2D a, b;
...
double z = a.x * b.y - b.x * a.y;
return z;
Run Code Online (Sandbox Code Playgroud)