无伤理解欧拉角中的“万向死锁”现象

Поделиться
HTML-код
  • Опубликовано: 28 окт 2024

Комментарии • 80

  • @unknow_______
    @unknow_______ Год назад +46

    實在太厲害了,能淺顯易懂的表達這樣理論的概念,跪求四元數講解~~

  • @nickvfx
    @nickvfx Год назад +31

    解决这个问题的方法是,在控制物体外建三个group,分别为x group,y group,z group。
    要调整旋转,不要转动被控制物体,而是分别转动相应的group。
    这样相当于每个物体只旋转了一个维度,其他维度保持0。
    就不会发生要命的莫名其妙的旋转了。
    至少在maya中是这么解决的。

    • @JSiuDev
      @JSiuDev Год назад +6

      再簡單一點說,就是把轉換分三步,每次只獨立做一軸。

  • @lucasteo5015
    @lucasteo5015 Год назад +47

    写游戏时,我们通常会分成世界轴和物体轴

  • @mr.dragon8447
    @mr.dragon8447 Год назад +8

    怪不得Unity在3D物件的轉動API不只提供了歐拉角,還有Rotate跟Quarternion,原來就是為了避免萬向死鎖的情況

  • @海洋-t5s
    @海洋-t5s 9 месяцев назад +2

    按照编程的逻辑来看的话,就是欧拉角中的三个轴高度耦合了,不管动其中那一轴,绝对会有其他轴受到牵连,那么解决方法就是尽量让这三个轴保持独立,四元数我觉得就是完美让每个轴保持独立的一个解决办法,因为从某种角度来看他没有三个轴这个概念,他就是你给个角度,再来个轴,我就给你旋转。完美的一个过程式编程的感觉。

    • @markusmoller8641
      @markusmoller8641 7 месяцев назад

      你说的是axis angle吧,四元数之所以能表示旋转不就是靠三个虚部分别对应xyz轴吗,感觉四元数不会出现奇艺是因为四位数是个比三维更高一维的四维量

  • @SyuAsyou
    @SyuAsyou Год назад +2

    感謝!很清晰的解釋了死鎖的成因!

  • @wangmingchang
    @wangmingchang Год назад +1

    感谢UP主,清晰了好多。欧拉角,表示一切都得从初始0状态且按规定顺序,开始变换。并不是以用户旋转的顺序变换,这个确实会让人头晕

  • @zaq1234sd
    @zaq1234sd 2 месяца назад

    没错,v社的破金源起源引擎就是这样一天到晚锁上,给武器模型的附件(手电筒)匹配旋转角度的时候,动不动就不给旋转了,看了这个视频才懂为什么

  • @phantomxiang
    @phantomxiang Год назад +4

    不錯,解答了我一年前的困惑,那時教授說四元數沒萬向鎖問題,但沒解釋萬向鎖是啥。

  • @kylxyzkean4973
    @kylxyzkean4973 5 месяцев назад

    精彩!你是全网讲的最明白的。

  • @余皓-z4g
    @余皓-z4g 5 месяцев назад

    终于理解了,原来欧拉角都是都是默认的和初始姿态作为参照,并且旋转轴顺序和用户ui操作无关。

  • @zhihaoliu2326
    @zhihaoliu2326 Год назад

    让我想起了上学的时候,学到的飞机姿态调整的那节课。当时没有太直观的理解,谢谢你。

  • @Jack-cl1iw
    @Jack-cl1iw Год назад +2

    每次调整都把上一次调整结果当成初始状态, 而调整顺序也按当前操作的顺序来, 这样会不会解决这个问题?

  • @kjyhh
    @kjyhh Год назад +3

    非常感谢,我终于看懂了,我正在搞3D开发一直很奇怪为啥每祯都置零

  • @peacepeace9462
    @peacepeace9462 Месяц назад

    好棒 引用都有给出处

  • @ltfx801
    @ltfx801 Год назад

    那么简单来说就是:虽然看起来是先调整了y轴角度再调整其他轴角度,但实际上是根据输入的x、y、z轴角度按照设定好的xyz顺序来进行旋转,所以其实根本没有按照旋转后的本地参考系来进行下一步旋转,这最终导致了万向死锁

  • @zaq1234sd
    @zaq1234sd 2 месяца назад

    那既然可以用欧拉角表示任意角度,那么向左俯冲这个动作的正确旋转值是哪三个

  • @palapapa0201
    @palapapa0201 Год назад

    這是我看過最好理解gimbal lock的影片

  • @biran007
    @biran007 Год назад

    讲得太好了

  • @snaker90
    @snaker90 11 месяцев назад

    讲得好, 终于让我搞明白了.

  • @waylonwong369
    @waylonwong369 Год назад

    朕已阅,这个有点意思,按照这个说法,假如让x轴一直上下摆动,然后再让飞机慢慢转过90度,会发现机头是在画振幅由大到小的波浪线,最后转到90度时,他变成了一个点,然后就绕着z轴转起来了

  • @memomariya2101
    @memomariya2101 Год назад

    真的太赞了,每一个视频都看得津津有味

  • @ZhiqiangLi-or9id
    @ZhiqiangLi-or9id 10 месяцев назад

    哥们太牛逼了 清晰易懂

  • @techguy6565
    @techguy6565 Год назад

    如果用固定軸而非物體自身軸,兩軸旋轉好像已經可以令3維物體轉成任意角度?

  • @黄天意-i1u
    @黄天意-i1u 11 месяцев назад

    博主赶紧出一期四元数吧,我到现在没搞懂

  • @ggalsorunning3762
    @ggalsorunning3762 Год назад

    关键点是变换时,相对的是变换前的本地坐标,而不是转动y轴后的本地坐标

  • @lha987
    @lha987 11 месяцев назад +1

    11:31 老一点的模拟飞行似乎就是这么设置的,机头抬到90度后就会有鬼畜的操控反馈

  • @SundayWithYou-o6p
    @SundayWithYou-o6p Год назад

    讲得太好了,通俗易懂

    • @junsongli1815
      @junsongli1815 Год назад +1

      他讲的有很多bug。故意隐藏某个轴 让别人以为他讲的有道理。

  • @影-e4q
    @影-e4q Год назад

    變換成直角造成直角堆疊在另一維度, 即任意維度90度 會碰觸到另一維度的0度
    如果180度及更換一個方向?

  • @sanvendi6236
    @sanvendi6236 Год назад

    開頭的歐拉角直接讓我想到空戰奇兵7 Ace combat 7 (?

  • @smithgodel
    @smithgodel 9 месяцев назад +1

    魔方里是不是也这个原理

  • @michaelwei9744
    @michaelwei9744 6 месяцев назад

    为什么变换一定要从初始状态开始?

  • @b97b01067
    @b97b01067 Год назад

    原來林克扭脖子是這樣來的XD

  • @frankyonng1710
    @frankyonng1710 Год назад

    其实就是在一个矩阵变换计算中,轴不变

  • @chengminli4720
    @chengminli4720 Год назад

    其实带入战斗机座舱视角就能理解了

  • @phoenixnexflix476
    @phoenixnexflix476 Год назад

    好有趣阿 講得好專業

    • @junsongli1815
      @junsongli1815 Год назад +1

      他讲的有很多bug。故意隐藏某个轴 让别人以为他讲的有道理。

    • @duckduck9487
      @duckduck9487 Год назад +1

      ​@@junsongli1815你講一次

  • @dragonlinux8298
    @dragonlinux8298 Год назад

    1:28 gimbal lock

  • @TheChungYuan
    @TheChungYuan Год назад

    所以Maya那是用什麼寫的?

  • @uwu-ming
    @uwu-ming Год назад +1

    10:11的圖沒法理解 結果圖不應該是飛機上下俯仰嗎 怎麼會變成滾筒操作了

    • @worldofwheat
      @worldofwheat Год назад

      我的理解是X先計算再算Y跟Z,所以X計算完之後飛機確實是上下俯仰,但因為被Y轉了一下,看起來像滾筒

    • @uwu-ming
      @uwu-ming Год назад +4

      ​@@worldofwheat 重看一次後懂了 在這裡留言給有相同問題的人
      旋轉X軸時Y也轉動了 所以後面的Y變化並不是水平的變化

  • @coolkk0812
    @coolkk0812 9 месяцев назад

    小弟資質愚鈍 跪求四元數解說

  • @ananglerfish
    @ananglerfish Год назад

    為什麼有“群論”的感覺

  • @菲力克斯
    @菲力克斯 4 месяца назад

    好有趣歐

  • @isaacyoungyxt
    @isaacyoungyxt Год назад +2

    “并没有什么难以理解的地方”🥲

    • @Zonwee
      @Zonwee Год назад

      輕描淡寫...以前玩慣性元件+Unity
      就沒搞懂過四元數 🥲

  • @K59820433
    @K59820433 Год назад

    終於懂了 拜託出四元數

  • @miku3920
    @miku3920 Год назад +2

    讓結果的狀態成為初始狀態不就解決了嗎

    • @palapapa0201
      @palapapa0201 Год назад +1

      要這樣還不如用四元數,一個3D引擎總不能有些物件的旋轉順序跟其他的不一樣

  • @huangdi7116
    @huangdi7116 Год назад

    3d 数学 很有趣

    • @junsongli1815
      @junsongli1815 Год назад

      他讲的有很多bug。故意隐藏某个轴 让别人以为他讲的有道理。

  • @muduhe
    @muduhe Год назад

    你竟然让我自学,麻的发克

  • @linkary
    @linkary 11 месяцев назад

    niubiu

  • @junsongli1815
    @junsongli1815 Год назад

    00:40 你绕Y轴旋转90度,连Z轴也转了90度 为何X轴不也旋转90度。要么X轴和Z轴一起旋转,要么X轴和Z轴一起不动。 差评。
    01:50 最终朝向和三个轴旋转顺序无关。他这是分别按两个坐标系旋转的。
    这种视频就 踩一下 避免这种刷点击率的视频再次出现在RUclips上。

    • @altrougeraieon9092
      @altrougeraieon9092 Год назад

      没看出来错误,按照欧拉变化按照XYZ顺序变化原则,初始状态X轴变化之后,你纠结X轴是否旋转还有何意义?X轴只能被调整一次

    • @altrougeraieon9092
      @altrougeraieon9092 Год назад +4

      影片主要问题就是标题唬人有标题党之嫌,所谓的万向死锁使得欧拉角听起来好像有巨大缺陷一般,实际上就是物体角度状态与欧拉坐标并非一一对应,即基于自身坐标的状态并不能唯一确定欧拉角坐标,目前UE引擎底层使用四元数计算,但是UI上表现为欧拉角便于直观调整

    • @junsongli1815
      @junsongli1815 Год назад +2

      @@altrougeraieon9092 他这个绕Y轴旋转90度时XYZ3轴是一起的还能单独分开旋转? Z轴和X轴要么一起旋转90度按飞机座参考系,要么X轴和Z轴固定按空间坐标系。
      按照这个逻辑再向上旋转90度,XYZ3个轴重合了只剩一个Z轴了。X轴Y轴都变成Z轴了。
      他这随时转换坐标系我都能以超光速移动了一会以太阳为原点计算距离,一会以北极星作为原点计算距离。就是这几秒计算的功夫我的位移速度超过光速了。

    • @crapsome7605
      @crapsome7605 Год назад +1

      ​​@@junsongli1815在一開始由初始狀態轉X軸的時侯,再轉Y軸90度後,Z軸就顯示在原本你之前在轉的X軸上了,主因還是歐拉角是有順序的,三個參數不是同時變換的。此外,坐標糸變換是正常的。

    • @nep7nep7
      @nep7nep7 Год назад +1

      你没听懂

  • @elvisxu8631
    @elvisxu8631 Год назад

    嘿嘿,刚学编程时,写了个 3d 旋转软件,就理解了这个问题