游戏程序设计中有趣的绕轴旋转

请添加图片描述

前言

在游戏设计中,绕轴旋转综合了位移与旋转两种空间变化,即在通过位移变换得到宏观旋转的效果的同时,物体自身的旋转来保证正确的轴向对齐。在对这一过程执行推导演绎时会设计到一些基本的高中几何数学知识

如果单纯的推导一个旋转的数学公式,对于游戏开发来说就太无聊了。对于理论知识上的学习乐趣通常在于理解后进一步去做工程上灵活的的使用。类似于生活大爆炸中霍华德与谢尔顿,理论物理学谢尔顿的弦理论研究固然很酷,但不总是有趣,反而工程师霍华德工作产出通常带来更多的快乐

所以在对于旋转的理论知识做一些简单的推导后,会对推导知识进行一个小应用,实现游戏中绕轴旋转的应用,即通常动作游戏或RPG游戏中存在的视角锁定状态下角色左右移动功能,如上图所示

分析旋转中的坐标计算公式

1、二维坐标系绕点旋转

以高中数学知识为起点,在二维坐标系中,某一点围绕另一点发生一定角度的旋转,点位坐标是固定且可以计算的。通过一个简单的图解表述推导出计算公式:
在这里插入图片描述

在上图的二维坐标中,假设某一点A ( x 1 , y 1 ) (x_1,y_1) x1,y1)围绕某一固定点B ( x 2 , y 2 ) (x_2,y_2) x2y2旋转一定角度θ,得到新的点位坐标B ( x , y ) (x,y) xy,同时,为了方便理解做出通过C点的水平辅助线,并分别将A点与B点映射到该辅助线上,并申明交点分别为D点与E点

为了便于推导,声明ACBC的长度为r,BCE之间的夹角为α,然后就可以根据以自的条件建立等式(由于实在找不到其他纸张,只能用抽纸来凑合)如下:

在这里插入图片描述

上面的等式中,角度α是未知的,但是在对等式分解后,恰巧可以消除掉α得到关于 ( x , y ) (x,y) xy的求解公式,如下:
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

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之凌儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值