(也許這對數學堆棧交換更好?)翻譯一個四元數
我有一個由骨頭組成的鏈。每個骨頭都有一個尖端和一個尾巴。下面的代碼將計算出其尖端會給出一個旋轉,並設置適當鏈的位置下一個環節:
// Quaternion is a hand-rolled class that works correctly (as far as I can tell.)
Quaternion quat = new Quaternion(getRotationAngleDegrees(), getRotation());
// figure out where the tip will be after applying the rotation
Vector3f rotatedTip = quat.applyRotationTo(tip);
// set the next bone's tail to be at this one's tip
updateNextPosFrom(rotatedTip);
如果旋轉應該圍繞對象的座標系的原點發生這工作。但是如果我想旋轉發生在對象的其他任意點周圍?我不知道如何翻譯四元數。什麼是最好的方式來做到這一點?
(我使用JOGL/OpenGL的。)
這個答案在很多方面混淆了3D圖形的每一個可能的部分。您的第一段討論線性變換矩陣,第二段討論均勻座標。與四元數無關。 – Dan 2016-12-05 05:40:31
是的,當我寫這封郵件時,我確信4x4變換矩陣是一個四元數。哎呀。 – 2016-12-14 13:40:27
如果你仍然在與四元數糾纏在一起,這個播放列表幫助我理解了許多我覺得沒有在其他地方解釋的部分:https://www.youtube.com/playlist?list=PLW3Zl3wyJwWNWsJIPZrmY19urkYHXOH3N如果你決定回來,讓你的答案更準確,@我在評論中,我會很樂意刪除我的投票。這只是爲了防止其他讀者變得更加困惑。 – Dan 2016-12-14 14:04:05