public static FP Angle(TSQuaternion a, TSQuaternion b) { TSQuaternion value = TSQuaternion.Inverse(a); TSQuaternion tSQuaternion = b * value; FP result = FP.Acos(tSQuaternion.w) * 2 * FP.Rad2Deg; bool flag = result > 180; if (flag) { result = 360 - result; } return(result); }
public static FP Angle(TSQuaternion a, TSQuaternion b) { TSQuaternion aInv = TSQuaternion.Inverse(a); TSQuaternion f = b * aInv; FP angle = FP.Acos(f.w) * 2 * FP.Rad2Deg; if (angle > 180) { angle = 360 - angle; } return(angle); }