OpenGL北,东,南,西

时间:2014-09-23 06:39:28

标签: opengl

我完全清楚"定向导向"在3D空间中完全是任意的,很像在外太空中没有上升或下降;它基于感知。但是,我很好奇,当宣布某些东西面向北方时,是否有任何共同的约定?阳性X可以被认为是北方吗?

编辑: 我记得Minecraft在调试控制台中有一个基于方向的输出;他们似乎这样定位:

正X:东

否定X:西部

正Z:南

负Z:北

我决定坚持使用“我的世界”如何宣布其定向饰面;我也写了这个小帮手类。切换解析方法是不必要的,但无论如何我都想要它。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace YourNameSpaceHere {

    public static class Orientation {
        public const double North = 180.0D;
        public const double East = -90.0D;
        public const double South = 0.0D;
        public const double West = 90.0D;

        public enum Direction {
            North ,
            East ,
            South ,
            West
        }

        public static double ParseRotation( Direction direction ) {
            double returnVal = 0.0D;
            switch( direction ) {
                case Direction.North:
                    returnVal = North;
                    break;
                case Direction.East:
                    returnVal = East;
                    break;
                case Direction.South:
                    returnVal = South;
                    break;
                case Direction.West:
                    returnVal = West;
                    break;
            }
            return returnVal;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

在OpenGL中为特定轴指定世界方向时没有惯例,但我会说常识建议按照您在编辑中描述它的方式命名。

我认为很明显地假设用户在查看屏幕时面向的默认方向是北方,因此-Z:北,Z:南,-X:西,X:东。但是你真的取决于你如何命名这些方向,所以如果你觉得不同的方法对你更具启发性,你可以去寻找它。

请注意,当您使用2D地图时,您将改变思考世界方向的方式。