1.向量的点乘
Dot(a,b)
物理意义:向量a在b上的投影
inline float Dot(const vec3 &v1, const vec3 &v2){
return v1.x*v2.x+v1.y*v2.y+v1.z*v2.z;
}
inline float fabsDot(const vec3& v1, const vec3 &v2){
return fabs(Dot(v1,v2));
}
2.向量的叉乘
Cross(a,b)
物理意义:得到向量c,使其分别垂直于向量a,b.//a,b平面的法向量
v1 x v2 = | i, j, k |
| v1.x, v1.y, v1.z|
| v2.x, v2.y, v2.z|
i,j,k分别为三个轴(0,0,1),(1,0,0),(0,1,0);
三阶行列式求值。对角线原则,左对角线减右对角线
a x b = i*v1.y*v2.z+ j*v1.z*v2.x + k*v1.x*v2.y- k*v1.y*v2.x -i*v1.z*v2.y - j*v1.x*v2.z
inline vec3 Cross(const vec3 &v1, const vec3 &v2){ <