問題タブ [quaternions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
3d - OGRE でオブジェクトの方向を取得する
私は体と頭を持つキャラクターを持っています。頭は骨として体とつながっていて、骨の名前はもう知っている。今、私は頭の方向を取得したいですか?それは可能ですか?私はこれを試しましたが、うまくいかないようです:
単位xベクトル以外で掛けるべきだと思ったので、全ての組み合わせを試してみました。この場合(すなわちスミスエンティティ)、 を使用して正解を得た-Vector3::UNIT_X
ので、これが正解だと思いました。他のエンティティで試しましたが、正しい答えが得られませんでした。
何か案が?
distance - クォータニオンを使用した最近傍
クォータニオン値が与えられた場合、一連のクォータニオンで最も近いものを見つけたいと思います。これを行うには、2 つの四元数間の「距離」を比較する方法が明らかに必要です。このような比較にはどのような距離表現が必要で、どのように計算されますか?
ありがとう、
ジョシュ
math - クォータニオンにはまだジンバルロックがあります
オイラー角の代わりに、立方体の回転を3Dで表現および処理するために、クォータニオンに移動しました。ジンバルロックは解決しますが、まだこの問題が発生しています。
私のコードは次のとおりです。
rotate
関数はhttp://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Pseudo-code_for_rotating_using_a_quaternion_in_3D_space(JavaScriptに変換)から取得されます。
x y z
問題は、ジンバルロックの主な問題である軸の順序()をまだ使用しているためだと思います。
ジンバルロックが解決されるように、クォータニオンローテーションをどのように実装しますか?
前もって感謝します。
rotation - 1つの軸のオイラー回転がゼロになるようにクォータニオンを変更するにはどうすればよいですか?
2つのノードがあり、そのうちの1つだけの回転を知っています。
ノード1の回転をノード2に適用したいのですが、1つの軸がゼロになっています(オイラーの用語で)。
どのように?
latitude-longitude - 経度/緯度から四元数へ
経度と緯度があり、これを四元数に変換したいのですが、どうすればこれができるのでしょうか? これを使用したいのは、球体に地球を投影するアプリがあり、ある場所から別の場所に回転したいからです。
一番!
iphone - Roll、pitch、Yaw、Quaternion、または Rotation Matrix を使用して、CMAttitude から高度と方位角を計算します。
問題が発生しました。iPhoneのCMAttitude情報をAltitude(0~90度)とAzimuth(0~360度)に変換したい。私はグーグルで検索して、それについて議論しているいくつかのスレッドを見つけましたが、肯定的な答えが得られるスレッドはなく、クォータニオンとオイラー角について議論している記事のほとんどは、私の脳に詰め込むには数学が多すぎます!
この作業を簡単にするオープンソースの資料はありますか? または、誰かがこの変換を実行するコードを書いていますか?
編集:まず、抽象的で申し訳ありません!
方位角は、デバイスが向いている地球の表面上の方向です。北 = 0 度、北東 = 45 度、東 = 90 度、南 = 180 度などです。0 度から 360 度までの範囲:
高度は、地球の平面から空のオブジェクトまでの角度です。
ありがとう、
ラージ
math - クォータニオンからヨーを抽出する
回転クォータニオンがあり、アップ軸 (ヨー) を中心とした回転角度を抽出したいと考えています。私は XNA を使用していますが、私が知る限り、このための組み込み関数はありません。これを行う最善の方法は何ですか?
助けてくれてありがとう、ヴェナトゥ
java - クォータニオン比較?
クォータニオン比較は可能ですか? Comparable
クォータニオンの Java クラスを作成しており、この機能を使用するためのインターフェイスを実装したいと考えていますCollections.sort(List<Quaternion>)
。私は数学の専門家ではありません。クォータニオンについて読んだことを本当に理解していません。compareTo
では、 Quaternions のメソッドをオーバーライドする方法を教えてもらえますか?
私のクラス宣言:
c++ - SLERP&スケルタルアニメーション補間ヘルプ!
プログラムのスケルタルアニメーションは正常に機能していましたが、フレーム間の各ボーンに格納されている4x4マトリックス間を線形に補間していました。
もちろん、マトリックスに大量の回転がない限り、これは問題ありません。モデルは、キーフレーム間でわずかに押しつぶされます。
そこで、 4x4マトリックスの回転部分のみをクォータニオンに変換し、SLERPを実行し、マトリックスの回転部分のみをクォータニオンのマトリックスバージョンに置き換える別の補間アルゴリズムを作成しました。マトリックスの変換部分については、線形に補間しました。
結果を見ると、これは明らかに間違っています!!! :'(
(私とは異なり)これらすべてをよく理解している場合は、おそらく「いいえ!それはあなたのやり方ではありません!」と考えているでしょう。-もしそうなら、私が間違っていることを教えてください!!
四元数と3x3行列の間で相互に変換する方法を説明するリソースしか見つからないため、行列の変換部分をどうするかわかりません。
どんな助けでも大歓迎です!!!!
objective-c - まだクォータニオンを使用したジンバルロックがあるようです
参照クォータニオンを使用してオブジェクトの位置を維持します ...
次のコードを使用して、2D xy タッチ スワイプから参照クォータニオンを回転させます ...
オブジェクトを回転するには、オブジェクトの各ベクトル ポイントに次のコードを適用します ...
次の方法を使用するもの...
私の問題は、オブジェクトが約 180 度のときに x 方向に回転すると、y 方向に移動できないことです。逆に、y方向に回転させた場合、約180度回転すると、x方向に移動できなくなります。何が間違っているのかわからない!
ポストスクリプト...
コメンテーターへの回答として、現在の Quaternion クラス全体は次のとおりです。