コード例 #1
0
        public static Vector3 GetDirection(this IRotateableYX obj)
        {
            float RadiansX = GetRotationXRadians(obj);
            float RadiansY = GetRotationYRadians(obj);

            return(new Vector3(
                       (float)(Math.Cos(RadiansX) * Math.Sin(RadiansY)),
                       (float)Math.Sin(RadiansX),
                       (float)(Math.Cos(RadiansX) * Math.Cos(RadiansY))));
        }
コード例 #2
0
        public static void SetArbitaryRotationsYX(this IRotateableYX obj, float rotationY, float rotationX)
        {
            rotationX -= (float)(360 * Math.Floor(rotationX / 360));
            if (rotationX > 270)
            {
                rotationX -= 360;
            }
            else if (rotationX > 90)
            {
                rotationX  = 180 - rotationX;
                rotationY += 180;
            }

            obj.RotationX = rotationX;
            obj.RotationY = rotationY;
        }
コード例 #3
0
 public static void SetRotationXRadians(this IRotateableYX obj, float value)
 {
     obj.RotationX = value * (float)(180.0 / Math.PI);
 }
コード例 #4
0
 public static float GetRotationXRadians(this IRotateableYX obj)
 {
     return(obj.RotationX * (float)(Math.PI / 180.0));
 }