前言
在游戏设计中,绕轴旋转综合了位移与旋转两种空间变化,即在通过位移变换得到宏观旋转的效果的同时,物体自身的旋转来保证正确的轴向对齐。在对这一过程执行推导演绎时会设计到一些基本的高中几何数学知识
如果单纯的推导一个旋转的数学公式,对于游戏开发来说就太无聊了。对于理论知识上的学习乐趣通常在于理解后进一步去做工程上灵活的的使用。类似于生活大爆炸中霍华德与谢尔顿,理论物理学谢尔顿的弦理论研究固然很酷,但不总是有趣,反而工程师霍华德工作产出通常带来更多的快乐
所以在对于旋转的理论知识做一些简单的推导后,会对推导知识进行一个小应用,实现游戏中绕轴旋转的应用,即通常动作游戏或RPG游戏中存在的视角锁定状态下角色左右移动功能,如上图所示
分析旋转中的坐标计算公式
1、二维坐标系绕点旋转
以高中数学知识为起点,在二维坐标系中,某一点围绕另一点发生一定角度的旋转,点位坐标是固定且可以计算的。通过一个简单的图解表述推导出计算公式:
在上图的二维坐标中,假设某一点A ( x 1 , y 1 ) (x_1,y_1) (x1,y1)围绕某一固定点B ( x 2 , y 2 ) (x_2,y_2) (x2,y2)旋转一定角度θ,得到新的点位坐标B ( x , y ) (x,y) (x,y),同时,为了方便理解做出通过C点的水平辅助线,并分别将A点与B点映射到该辅助线上,并申明交点分别为D点与E点
为了便于推导,声明AC
与BC
的长度为r,BCE
之间的夹角为α,然后就可以根据以自的条件建立等式(由于实在找不到其他纸张,只能用抽纸来凑合)如下:
上面的等式中,角度α是未知的,但是在对等式分解后,恰巧可以消除掉α得到关于 ( x , y ) (x,y) (x,y)的求解公式,如下:
x = ( x 1 − x 2 ) c o s θ − ( y 1 − y 2 ) s i n θ + x 2 x = (x_1 - x_2)cosθ - (y_1 - y_2)sinθ + x_2 x=(x