示例#1
0
        public static Vector OrthogonalVector( Vector Normal )
        {
            Vector temp;

            switch ( Normal.ShortestAxis() )
            {
                case Vector.Axis.X:
                    temp = new Vector( 1.0f, 0.0f, 0.0f );
                    break;
                case Vector.Axis.Y:
                    temp = new Vector( 0.0f, 1.0f, 0.0f );
                    break;
                default: // Vector.Axis.Z
                    temp = new Vector( 0.0f, 0.0f, 1.0f );
                    break;
            }

            return Vector.CrossProduct( Normal, temp ).Normalize();
        }