[游戏开发]游戏当中的旋转计算

首先,截图是从该博主视频截图来的

欧拉角,矩阵,四元数,万向节死锁_哔哩哔哩_bilibili

[游戏开发]游戏当中的旋转计算_第1张图片

r长度的向量(x0,y0),旋转θ角度后变为(x,y)

x0 = r * cos α

x0 = r * sin α

x = r * cos(α + θ) = r * cos(α) * cos (θ) - r * sin(α) *  sin(θ) = x0 * cos(θ) - y0 * sin(θ)

y = r * sin(α + θ) =  r * sin(α) * cos (θ) + r * sin(θ) *  sin(α) = y0 * cos(θ) + x0 * sin(θ)

求解x0和y0坐标比较好理解,x和y的坐标用到了高中的知识,看下图

 ​​​​​​​​​​​​​​[游戏开发]游戏当中的旋转计算_第2张图片

简单解释一下x = x0 * cos(θ) - y0 * sin(θ)如何获得,由于x0 = r * cos α

x = r * cos(α) * cos (θ) - r * sin(α) *  sin(θ),公式里恰好有r * cos α,因此把x0替换进去,得到最终结果,巧妙的是本来有一个α未知变量,公式变换后全是已知变量

上面是向量旋转的数学公式推导,下面开始引入矩阵概念。

理解矩阵的几何功能

  1. 矩阵是一种线性变换(线段变换后仍是线段,并且原点不会改变)
  2. 矩阵是一种映射,映射可以是一对一,也可以是一对多
  3. 矩阵是一种空间变换,每一种矩阵都是有本身的几何意义,而不是单纯的数字组合

了解了矩阵的几何功能后,再来看矩阵和旋转的联系,旋转是一种线性变换,因此当然可以用矩阵表示旋转。 

你可能感兴趣的:(渲染与shader,unity,游戏开发)