2
我有在三維空間中的物體2,A & B和對象B父對象A.基於具有四元數的父項定位對象?
這兩個對象具有三維位置,以及表示它們的具體取向四元數。
我有翻譯工作正常,所以無論何時A移動,B移動。
但是,我似乎無法從父母的方向得到正確應用於其子女。
可以說A的方向代表圍繞X軸旋轉90度。通過我的代碼,對象B似乎出於某種原因旋轉180度左右。
下面是關於發生了什麼的圖片。
以下是我正在試圖產生針對任何特定頂點的向量,給孩子和家長的位置和方向:
vec4 finalVertex = rotVertexByQuat(parentOrientation, vec4(parentPos,1) + vec4(objPos,1) + rotVertexByQuat(objOrientation, vertex));
我轉動由四元這樣的頂點:
vec4 rotVertexByQuat(Quaternion quat, vec4 vert)
{
Quaternion p1 = Quaternion(1, vec3(vert.x,vert.y,vert.z));
Quaternion p2 = multiplyQuaternion(quat,p1);
Quaternion p3 = multiplyQuaternion(p2, inverseQuaternion(quat));
return vec4(round(p3.v.x), round(p3.v.y), round(p3.v.z),1);
}
我的操作順序有問題嗎?