译自: https://www.3dgep.com/3d-math-primer-for-game-programmers/

在本文中,我想为想要参与游戏编程的人们提供一个简短的数学入门。这并不是对成为一名成功的游戏程序员必须了解的所有数学理论的详尽解释,但它是您开始成为游戏程序员之前必须了解的最少信息量。

本文假设您对向量和矩阵有最低限度的了解。我将简单地展示向量和矩阵的应用以及它们如何应用于游戏编程。

坐标系

在我们谈论坐标变换之前,我们必须对我们的坐标系做一个正式的定义。DirectX 使用的默认坐标系是左手坐标系。OpenGL 使用的默认坐标系是右手坐标系

我们可以通过使用手对坐标系进行一个简单的判断。

左手坐标系中,你的大拇指将指向X轴的正方向(指向右边),你的食指指向Y轴的正方向(上方),你的中指指向Z轴的正方向(远离你的方向)。

右手坐标系中,你的大拇指将指向X轴的正方向(指向右边),你的食指指向Y轴的正方向(上方),但是与左手坐标系不一样的是,你的中指指向Z轴的正方向,但是这个方向不是远离你的方向,而是指向你自己。

左手坐标系 右手坐标系
计算机图形学 – 3D数学入门之坐标系-StubbornHuang Blog 计算机图形学 – 3D数学入门之坐标系-StubbornHuang Blog

与坐标系相关的另一个重要的理论就是每个坐标系的旋转方向是不一样的。

下表显示左手坐标系与右手坐标系正方向旋转和负方向旋转的旋转方向。

左手坐标系 右手坐标系
查看方向 正向旋转方向 负向旋转方向 正向旋转方向 负向旋转方向
从坐标轴负方向看正方向(比如从-1看向+1) 逆时针 顺时针 顺时针 逆时针
从坐标轴正方向看负方向(比如从+1看向-1) 顺时针 逆时针 逆时针 顺时针