Example #1
0
        //============================================================
        // <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);
        }
Example #2
0
        //============================================================
        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));
        }