免責事項:私はプロのゲームプログラマーであり、ほとんどの場合、四元数を使用しますが、黒魔術に近いです。私は数学に比較的慣れていますが、虚数はいつも私を混乱させました。私はクアットを有用なものとして扱い、乗算を2回以上逆転させる傾向があります。限られた成功を収めているマトリックスと同じように、それらについて推理しようとします。
とにかく...。
私を困惑させるのは次のとおりです。ローカル軸を中心にオブジェクトを回転させたい場合、適用したい回転を表すクォータニオンをその回転に掛けます。したがって、ローカル空間での回転です。
ワールドスペースの軸を中心に回転させたい場合、私の推論は次のとおりです。ワールドスペースでの回転をクォータニオンとして考えます。オブジェクトの回転の逆数をこの四元数で乗算します。これにより、ローカルスペースでの世界ローテーションが実現します。この新しいクォータニオンで回転を乗算します。すなわち:newRot = oldRot *(oldRot * worldRotの逆)
しかし、私がする必要があるのは、newRot = oldRot *(inverse oldRot * worldRot)* oldRotです。
なぜ逆クアットと乗算した後、それを適用する前に自分のクアットと乗算する必要があるのですか?完全に正当な理由があるに違いないが、私はそれから抜け出す方法を推論することはできず、それは私にとって一体でイライラしている。私はさまざまなFAQを試しましたが、ほとんどは数学の奥深くに行き、わかりにくくしました。
5歳のように説明してくれる人はいますか?
I try to reason about them like I would with matrices
-その後、あなたは正しい軌道に乗っています。行列を使用してオブジェクトの軸と世界の軸を中心に回転する方法を理解している場合は、クォータニオンを使用して同じことを行うことができます。乗算の順序は、行列と四元数の両方で同じです。