私はL型システムインタプリタに取り組んでおり、回転の内部表現として四元数を使用しています。私はThreeJsのJavaScriptシーンに結果をエクスポートする必要があり、それを行うための最良の方法としてjsonのシーンが見つかりました。Three.js jsonシーンでquaternion rotationを使う方法
シーンの例がhttps://github.com/mrdoob/three.js/blob/master/examples/scenes/test_scene.jsにありますが、四元数の回転については何もありません。
は、だから私は、THREE.Object3Dプロパティ四元とuseQuaternionを持っていますが、動作しないようですが、エラーがシーンローダー(おそらく行方不明の「回転によって提起されていることを、http://threejs.org/io/s/quaternionでヘルプを使用してい、私は順序Yを想定し(私もオイラー角に四元を変換しようとした
"obj": {
...
"quaternion": [0.38268343236509,0,0,0.923879532511287],
"useQuaternion": true
}
が、それは文句を言わないせい角度の適用の他のオーダーで、私のために働く: "属性は、)最後にEDITを参照してくださいZ、X)。上記の例では、クォータニオンはZ軸(ピッチ)を中心に135度回転しており、オイラー角[pi、pi、pi/4]に変換されますが、場面では正しく表示されません。
以下の図は、それぞれが11度以上Z軸回転したブロックを示しています。軸はX(赤)、Y(緑)、Z(青)です。ユークリッドへの不正確な変換四元数のため、上半分が正しく回転されませんでした(私はこのページを実装に使用しました:http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/)。
EDIT:さらに検査した後のシーンローダーによって発生したエラーが原因でオブジェクト上の欠落している「回転」属性です。出力後にはエラーが発生せず、シーンがロードされますが、クォータニオンの回転は無視されるため、間違っています(画像と同じ方法で)。
"obj": {
...
"rotation": [3.14159265358979,3.14159265358979,0.785398163397449],
"quaternion": [0.38268343236509,0,0,0.923879532511287],
"useQuaternion": true
}
シーンローダーによって生成されたエラーメッセージには、クォータニオンの使用について特に気に入らないものが何であるかが詳細に記載されていますか? –
このエラーは "rotation"属性がないために発生します。シーンローダーはおそらく四元数の回転を全くロードしません。 – NightElfik