任意向量通过平面法线,计算投影向量
点击查看:
如果无法翻墙的朋友就看下面吧

已知
向量q
平面法线n
求q在法线为n的平面上的投影向量t

通过公式很容易就能得出
Vector3 ProjectOnPlane(Vector3 vp,Vector3 vn)
{
Vector3 vt = new Vector3();
vt = vp - vn * Vector3.Dot(vp, vn) / Vector3.Dot(vn, vn);
return vt;
}
其中的Vector3代表一个三维数据结构(x,y,z)
其中Vector3.Dot(v1,v2)代表的是向量的点乘,如果大家不知道点乘就可以看下面这段
点乘 : v1 ⋅v2 = value;
v1是一个向量,v2也是一个向量,而点乘的结果value是一个浮点数(float,double)
点乘的空间意义,如果v1,v2都是单位向量(即长度为1的向量)那么v1 ⋅v2的结果可以反映两个向量的方向信息
当value值为1的时候,代表v1 v2的方向相同
当value值为0的时候代表v1 v2是互相垂直的
当value值为-1的时候代表v1 v2是反向的
很多人会把点乘和叉乘混淆,两个的意义和结果是完全不一样的
未完待续...
网友评论