.
聲明:本人只是分享一些床長人工智慧教程相關的免費pdf文檔而已,並非床長人工智慧網校的收費文章。尊重版權,支持原創!
學習的筆記在學習時記錄的筆記的筆記中一類的警告的解決方案中沒有高級保存選項的解決方案中和的區別中關於四元數的詳解轉載自類默認方向方向的表示法①歐拉角表示法②前方上方矢量界定法③繞軸旋轉界定法④向到向相對旋轉表示法成員變量成員函數靜態函數驗證前方上方矢量表示法總結幾種表示方法將四元數旋轉應用於子彈射擊示例
在學習時記錄的筆記的筆記
官網地址
中文官網地址
中一類的警告的解決方案
學習的時候經常會看到類似於下面這種警告
雖然警告不影響正常使用,但是強迫症看到警告還是想要解決掉,網上查了查找到了原因
通過編輯器創建的腳本文件是以結尾平臺,創建的也是以結尾平臺,而直接用創建的文件是以結尾平臺。
由於換行編碼不一致導致報以上警告。
解決方案如下
在菜單欄中選擇文件然後選擇高級保存選項,
在行尾處選擇保存,以後通過編輯器創建的文件將默認以換行。
中沒有高級保存選項的解決方案
如果中沒有高級保存選項的,可以通過在菜單欄中選擇工具選擇自定義添加高級保存選項
添加高級保存選項後可以通過上下移選項來調整其位置
中和的區別
在學習或使用的時候,就會遇到調試的問題,在中調試比較麻煩,不像在中可以直接設置斷點來調,所以選擇列印消息的方式來調試。
但是列印消息也有幾種方式,一種的,一種的。
是的一個成員。
則是一個密閉的類。
所以在使用的範圍上,必須要繼承類,而不用。
在中反編譯這個會發現方法的實現其實非常簡單。
就是通過來完成的。
所以就是的一個簡單封裝
中關於四元數的詳解轉載自
類
四元數用於計算旋轉。
它們計算緊湊高效,不受萬向節鎖的困擾,並且可以很方便快速地進行球面插值。
內部使用四元數來表示所有的旋轉。
是基於複數,並不容易直觀地理解。
不過你幾乎不需要訪問或修改單個四元數參數,,,大多數情況下,你只需要獲取和使用現有的旋轉例如來自,或者用四元數來構造新的旋轉例如,在兩次旋轉之間平滑插入。
大部分情況下,你可能會使用到這些函數
,
是一個結構體,本身成員變量相對簡單,可以作為函數參數高效傳遞。
默認方向
在深入了解之前,我們需要先明確一些基本的概念,就是方向旋轉究竟是如何表示的。
中使用左手坐標系,假如把世界坐標系跟東南西北進行結合起來看,大致如下所示
默認的方向對應如下表
坐標軸
對應方向
右東
左西
上
下
前北
後南
假設以你自己身體為例,你站立在地面上,面朝北方,此時就是默認方向,也就是中的方向就是面向軸方向,那麼此時軸在東方,軸對應正上方。
此時對應的歐拉角是此時對應的前方矢量是,上方矢量是。
這裡我區分了左右上下前後的概念,因為這些概念同時也對應了類類中的相應的方向函數。
方向的表示法
①歐拉角表示法
假如你使用一組歐拉角表示旋轉,三個參數代表相應軸向按照順歸的旋轉,因此代表先進行軸旋轉度,再沿著軸進行度旋轉,更多詳細內容可以參考前述文章【編程】中的歐拉旋轉。
②前方上方矢量界定法
編程過程中,大部分需要明確指定方位的時候就需要使用這個方法。
要確定一個朝向,我們可以使用兩個向量來確定即前方矢量和上方矢量。
當一個朝向的前方和上方確定之後,這個朝向也就完全確定了。
舉例來說,如果現在只提供一個朝向,就是你現在面朝北方,那麼這個方向已經完全確定了嗎?顯然沒有。
因為你右側躺在地上,看向北方,還是在面朝北方,這時候就需要另外一個矢量,也就是上方。
當給出上方之後,這個朝向就完全確定了。
上方需要嚴格給出嗎?
在中,我們很多時候,不需要給出嚴格的上方朝向。
比如,仍然是上面那個例子,如果我面朝北方,先給出代表我的前方矢量。
那麼,如果我給出的方向不是嚴格的上方矢量,比如是,是否可以?答案也是可以的,因為這兩個矢量顯然已經確定了一個方向,前方是嚴格的,而實際的上方可以通過前方朝著你給出的上方矢量旋轉度得出。
也就是說,你給作為上方矢量,和給出在下中弧度範圍內不包含和所有方向的矢量都是相同的結果。
③繞軸旋轉界定法
第三種定義旋轉的方法就是圍繞某個指定的軸向旋轉一定的角度。
這個方法也可以確定一個相對旋轉,它以從默認方向此時前方,上方出發,沿著指定的軸向進行指定角度的旋轉,旋轉後的前方和上方是確定的。
因此這個方法也可以用來確定朝向。
④向到向相對旋轉表示法
還有一種方法就是從向到向的相對旋轉,這種表示了一個旋轉的相對變化。
比如為,為,也就是相對旋轉量代表原來的上方被旋轉到了前方,這樣的一個四元數也可以用歐拉角表示成,也就是沿著軸旋轉了度。
注意上面四中表示方法中,有的明確表明了上方矢量,有的好像只明確了前方矢量,要明確的一點就是,它們都是從默認矢量出發的,如果沒有明確指定上方朝向,那麼就是使用默認的上方,也就是方向。
成員變量
歐拉角,返回當前四元數所對應的歐拉角
可以使用類似數組和下標的形式從四元數中獲取四個四元數參數
分別代表參數,具體代表的內容可以參考前文【編程】四元數與歐拉角,你最好不要通過修改四個參數來改變四元數,除非你真的非常了解它們的含義。
靜態成員
單位四元數,也就是默認的無旋轉狀態,此時與世界坐標相同,前方指向,上方指向
成員函數
函數形式
解釋
設置分量,與功能相同
設置成靜態函數的結果
設置成靜態函數的結果
設置成靜態函數的結果
說明成員函數幾個方法多用於將當前四元數設置成目標四元數,目標四元數的構建方法與對應名稱的靜態函數相同。
靜態函數
函數形式
解釋
計算兩個四元數前方矢量之間的夾角度數
構建一個四元數,它表示沿著一個軸旋轉固定角度,即上述表示法③
計算兩個四元數之間的點積,返回一個標量,這個函數一般用不到,它的點積不代表什麼具體的物理含義,具體定義方法見我的前述文章
構建一個四元數,它用歐拉旋轉表示,即上述表示法①
構建一個四元數,它表示從指向方向到指向方向的相對旋轉量,見上述表示法④
構建一個四元數,它是指定的四元數的逆,也就是逆向旋轉,比如原四元數表示相對軸旋轉了度,那麼此函數結果就是相對軸旋轉了度
構建一個四元數,表示從四元數到的球面插值,所謂的插值也就是中間旋轉量,從作為起點,此。。。