【发布时间】:2012-03-31 07:46:27
【问题描述】:
我目前正在游戏中自学线性代数,我几乎感觉已经准备好在一个简单的 2D 空间中使用我的新知识。我打算使用一个数学库,用向量/矩阵等来表示位置和方向,这与我上次的游戏不同,它很简单,不需要它。
我只是想澄清一下这个问题。首先,用 4x4 齐次坐标表示 2D 空间中的位置是否有效,如下所示:
[400, 300, 0, 1]
在这里,为了简单起见,我假设我们在 800 x 600 的固定分辨率(和屏幕空间)下工作,所以这应该是屏幕中间的一个点。
这有效吗?
假设这个位置代表玩家的位置,如果我用一个向量,我可以代表玩家面对的方向:
[400, 400, 0, 0]
所以这个向量表示玩家面向屏幕底部(如果我们在屏幕空间中工作。
这有效吗?
最后,如果我想将播放器旋转 90 度,我知道我会将向量乘以矩阵/四元数,但这是我感到困惑的地方。我知道四分位数的效率更高,但我不确定如何旋转我的玩家所面对的方向。
有人可以解释构造一个四分位数并将其乘以我的脸向量的数学原理吗?
我还听说 OpenGL 和 D3D 以不同的方式表示向量,这是如何工作的?我不是很明白。
在几个月后我踏入 3D 空间之前,我正在尝试开始掌握游戏中的基本线性代数。
【问题讨论】:
-
您的大部分问题取决于一个或另一个库的实施细节。我强烈建议最好的方法可能是选择一个“最适合”的库,然后开始使用它。恕我直言...
-
感谢您的建议。跳进去开始玩弄东西似乎总是一个好主意。
标签: math 2d linear-algebra algebra