土圭垚㙓数学课(一)万向锁(Gimbal Lock)
何为万向锁,我们先抛弃掉那些理论,直接举个栗子。
以你自身为对象。
首先,原地旋转为第一个维度,也就是heading。
其次,正翻跟头为第二个维度,也就是pitch。
然后,侧翻跟头为第三个维度,也就是bank。
这就是欧拉角的三个旋转维度,这三个是有顺序的,首先是原地旋转,然后是正翻跟头,最后是侧翻跟头。
当然这些都是没有位移的。
假设你一开始是朝北站立,这就是你:
那么开始旋转了。
先顺时针原地旋转(heading)45度,这时候你朝东北站立。
然后正翻跟头(pitch)90度,这时候你克服了地心引力,头朝东北面朝下悬浮。
那么这一波旋转就结束了。
重置你的位置,朝北站立。
这一次先正翻跟头(pitch)90度,你就当你是Superman(特意为你加了红裤衩),头朝北面朝下悬浮。
然后再顺时针侧翻跟头(bank)45度,这时候你居然还是头朝东北面朝下悬浮。
没想到吧!
惊不惊喜?意不意外?刺不刺激?
举完了土掉渣接地气的例子,让我们回归到理论知识。
当pitch为±90°的时候,heading轴和bank轴是重合的,那么在这种情况下,欧拉角的旋转自由度便会减少一个,这也就是万向锁问题。
更多示例可以看维基百科Gimbal lock。(趁着还能看,赶紧看)
解决方案便是用四元数(Quaternion)表示方位(旋转),我们会在下节课介绍四元数(如果有缘的话)。
土圭垚㙓数学课(一)万向锁(Gimbal Lock)相关推荐
- 土圭垚㙓数学课(四)空间变换
我曾经在Shader山下(十六)坐标空间与转换矩阵中介绍过,一个物体要显示在平面上,需要经过四步空间变换(实际上是五步): 物体空间->世界空间->观察空间->裁剪空间(->归 ...
- 万向锁(Gimbal lock)问题的理解及解决
万向锁(Gimbal lock)问题的理解及解决 万向锁(Gimbal lock): 一旦选择±90°作为pitch角,就会导致第一次旋转和第三次旋转等价,整个旋转表示系统被限制在只能绕竖直轴旋转,丢 ...
- 土圭垚㙓数学课(三)四元数
何为四元数?讲解四元数的文章往往会把四元数跟复数联系在一起.诚然,四元数的起源跟复数有关系,但是理解复数系统并不是理解四元数的首要条件. 提到四元数,我们首先要提到一个人--莱昂哈德·欧拉(Leonh ...
- 欧拉角表示旋转会出现的问题——万向锁(Gimbal Lock)
本文用来总结万向锁问题.尽量写得非常简单,方便自己复习和后人理解,水平有限若有错误请指教. 一.旋转的表示 本文中矩阵计算的结果是在世界坐标系(称之为North East Down Frame NED ...
- 关于万向锁(Gimbal lock)问题的理解及解决
1. Gimbal lock的理解 万向锁(Gimbal lock): 一旦选择±90°作为pitch角,就会导致第一次旋转和第三次旋转等价,整个旋转表示系统被限制在只能绕竖直轴旋转,丢失了一个表示维 ...
- 土圭垚㙓数学课(二)视锥体八个顶点的计算方法
视锥体是摄像机可见的空间,看上去像截掉顶部的金字塔.视锥体由6个裁剪面围成,构成视锥体的4个侧面称为上左下右面,分别对应屏幕的四个边界.为了防止物体离摄像机过近,设置近切面,同时为了防止物体离摄像机太 ...
- 使用四元数解决万向节锁(Gimbal Lock)问题
使用四元数解决万向节锁(Gimbal Lock)问题 参考文章: (1)使用四元数解决万向节锁(Gimbal Lock)问题 (2)https://www.cnblogs.com/psklf/p/56 ...
- 万向节锁(Gimbal Lock)的理解
转自:https://www.cnblogs.com/psklf/p/5656938.html 严正声明: 作者:psklf 出处: https://www.cnblogs.com/psklf/p/5 ...
- 万向锁的简单数学解释
我们知道用欧拉角表示空间的旋转,容易产生万向锁(Gimbal Lock)问题,这常常不太容易理解.下面给出一个直观的数学解释. 欧拉角表示的空间旋转,可以用绕三个坐标轴的旋转矩阵的乘积表示 万向锁问题 ...
最新文章
- struts1 几种Action父类的比较
- Mysql 5.7.10以上版本安装大坑
- php mongodb 连接失败,解决PHP使用普通账号连接mongodb报错问题
- Windows PowerShell安装指定版本vue/cli脚手架失效解决办法;vue : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue
- Ubuntu 18.04 rc.local systemd设置
- Gstreamer之gst-plugin-bad交叉编译集成x265(二十二)
- NYOJ——————数的长度(斯特林公式的应用)
- ios mailto:// 用邮箱发邮件_投简历用什么邮箱最好?投简历怎么发邮件?
- PostgreSQL命令导入sql文件
- 茗创:近红外数据处理业务
- 2022全开源企业发卡网修复短网址等BUG_2022企业级多商户发卡平台源码
- [TimLinux] Python3 Coverity zeep/SOAP 库使用示例
- html5新浪微博代码,JS实现的新浪微博大厅文字内容滚动效果代码
- 《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf
- 使用插件实现ecplise js/jquery智能提示
- [分享] 【强烈推荐】要速度更要方便!75款实用Chrome插件推荐
- Java实现自动输入账号密码登陆软件
- 计算机配置高低怎么看,电脑配置怎么看高低?教你如何查看电脑配置高低?
- 【POJ 1475】 Pushing Boxes
- iOS设置键盘上Return按键及点击操作