//============================================================ // <T>标准化<T/> //============================================================ public SFloatVector3 Cross(SFloatVector3 value) { value.Normalize(); SFloatVector3 result = new SFloatVector3(); result.X = (Y * value.Z) - (Z * value.Y); result.Y = (Z * value.X) - (X * value.Z); result.Z = (X * value.Y) - (Y * value.X); result.Normalize(); return(result); }
//============================================================ public float Angle(SFloatVector3 value) { // 计算两单位向量点乘 SFloatVector3 value1 = new SFloatVector3(X, Y, Z); value1.Normalize(); SFloatVector3 value2 = new SFloatVector3(value.X, value.Y, value.Z); value2.Normalize(); // 计算夹角 float cos = value1.Dot(value2); return((float)Math.Acos(cos)); }