問題タブ [euler-angles]

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.

0 投票する
1 に答える
5041 参照

opengl-es - モデル/ビューマトリックスからのOpenGLカメラ方向ベクトル

自分が向いている方向に物を投げたい小さなゲームを作っています。問題は、私の(カメラ)の向きがモデル/ビューマトリックスによって決定されることです。そして、このマトリックスはシステムによって提供されます(Androidデバイス上)。

スローされたオブジェクトの速度ベクトルとして機能するベクトルを計算するにはどうすればよいですか?
いくつかのベクトルに行列を掛けてみましたが、結果はこれを達成する方法の手がかりを与えてくれません。

マトリックスには回転部分のみが含まれます(スケール、スキュー、または平行移動は含まれません)。
私はOpenGLES1.1を使用していますが、おそらく問題ではありません。

この答えに従って、各軸の周りの回転角を取得することができましたが、それから速度ベクトルを構築する方法がまだわかりません。

編集:私が達成しようとしているのは、モデル/ビューマトリックスを任意の方法で回転させ、オブジェクトを私が向いている方向に投げることです。最終的に地面に向かって加速するオブジェクトが必要です。私が直面している(カメラが)正確なベクトルを知っていれば、この軌道を計算するのに問題はありません。

助けてくれてありがとう。

0 投票する
2 に答える
3376 参照

pid - 180度でのヨー角の不連続性に対処する方法

私は車両制御に取り組んでおり、9DOFセンサー(加速度計、磁力計、ジャイロスコープ)を使用しています。ヨー角については、ピラジアンで不連続性の問題があります。(180度)。PIDコントローラーで車両を制御していますが、車両が180度以上回転すると、符号が突然変化し(180から-180)、コントローラーの動作がおかしくなります。-180度以上回転しても同じ問題が発生します。

方法として、方向余弦行列を使用してオイラー角を計算しています。(sparkfunセンサーの推奨方法。)

私の質問は、どのようなアプローチを使用すべきかということです。PIDコントローラーを使用してヨー角を制御する場合のこの不連続性への対処方法。

0 投票する
1 に答える
7756 参照

c# - 2つの法線ベクトル間のx、y、z回転を見つけます

3D空間に2つの正方形があります。それらの間のx、y、z角度を見つけたいです。私は両方の正方形の法線ベクトルを見つけることから始め、それらの間の角度を取得する方法を見つけようとしています。

XNA(C#)Vector3オブジェクトを使用しています。

次のように法線ベクトルを計算しました。

normal1がnormal2と同じ向きになるオイラー回転を見つけたい

0 投票する
1 に答える
1369 参照

javascript - アナログ センサー データからのオイラー角

javascript のアナログ センサー データに基づいてオイラー角を計算しようとしています。センサー データには、3D のジャイロ、加速度計、磁力計のデータが含まれます。数学は私の頭を少し超えており、助けやヒントを探しています。

ありがとう!

0 投票する
2 に答える
764 参照

c++ - オイラー回転は、3 つの行列として格納する必要がありますか?それとも 1 つの行列として格納する必要がありますか?

後でゲーム開発で使用できるようになることを願って、単純なマトリックス ライブラリを C++ で作成しようとしています。

基本的な実装は完了しましたが、オブジェクトごとに 1 つの行列しか格納できないという問題に気付きました。回転順序がすぐに混乱してしまいます。

私の知る限り、AB != BA

したがって、マトリックスに任意の回転を継続的に乗算している場合、回転が混乱してしまいますよね? 私の場合、Y 軸でグローバルに回転し、X 軸でローカルに回転する必要があります (Z 軸でローカルに回転するのもいいでしょう)。これらは、平均的な一人称シューティング ゲームの資質のようです。したがって、「混同」とは、Y 軸 (または Z 軸) で回転しようとすると、意図した軸ではな​​く、ローカル X 軸を中心に回転し始めることを意味します (意味がある場合)。

だから、これらは私が思いついた解決策です:

  1. 3 つのオイラー角を保持し、1 つの角が変化したときに行列を正しい順序で再構築する
  2. 各軸に 1 つずつ、3 つの行列を保持する
  3. 乗算中に何らかの方法で行列を破壊し、後で適切に再構築します (?)

それとも私は何も心配していませんか?私の良心の呵責は間違っているのでしょうか? 秩序は魔法のように自然に解決するのでしょうか?

0 投票する
4 に答える
43377 参照

c++ - オイラー角からクォータニオン、次にクォータニオンからオイラー角

テストクォータニオンにlibglm(http://glm.g-truc.net/ )を使用していますが、問題があります。オイラー角をクォータニオンに変換し、すぐにクォータニオンをオイラー角に変換すると、最初のオイラー角とはまったく異なる結果になります。これは正常ですか?ローテーションが通信できないためでしょうか?

コードテスト:

結果:

よろしくお願いしますo/

0 投票する
1 に答える
3945 参照

bulletphysics - [-90, 90] から [0, 360] の範囲のヨー オイラー角の変換

を使用して、Bullet 物理エンジンから取得したヨー オイラー角を変換することは可能ですか?

範囲 [0 , 360] に。それ以外の場合、360 度回転の場合、オイラー角は 0->90->0-> -90 -> 0 の範囲で変化します。

しかし、私は0->90->180->270->0から欲しい

私のグラフィックス API は、0 から 360 の範囲の回転角度のみを受け入れます


ええと、0->90->0-> -90 はピッチ値でした。これが私が今使っているコードです:

ピッチの負の値に 180 を加算しようとしましたが、うまくいきません。オイラー角を使用してメッシュをスムーズに回転させる別の方法を見つける必要があるようです。


更新: 弾丸関数を直接使用するべきではないようです。より良いオプションは、基底行列を直接扱うことです:

これで、y 軸を中心とした回転が得られました。残りの 2 については....ふぅ!

0 投票する
1 に答える
1673 参照

opengl - 非対称オブジェクトの上下 2 つの 3D 点/1 つのベクトルから 3 つのオイラー角を抽出する

直線上に 2 つの 3D ポイント (非対称オブジェクトの上部と下部) があり、オイラー角 (x、y、z 軸に沿った回転) を見つけたいと考えています。

例: OpenGL の次のコードのリバース エンジニアリングが必要です。以下はシナリオを示すための単なる例です。

状況によっては、p1 と p2 しか取得できず、オイラー角 (x、y、z 軸に沿った回転) を知る必要があります。どのように?

これは私が試したもので、答えは (Rx, Ry, Rz): (4, -3, -11),

特にYに沿った回転はまったく正しくありません。p1 と p2 は両方とも y 軸に沿って回転しているときに y 軸にあると思うので、問題は次のとおりです。次に、可能な最善の解決策は何ですか?

0 投票する
1 に答える
1457 参照

rotation - ヨー、ピッチ、ロールから vectorDir および vectorUp

オブジェクトからヨー、ピッチ、ロールがあり、それを vectorDir と vectorUp に変換する必要があります。誰かがそれを行う方法のアイデアはありますか?

0 投票する
1 に答える
1654 参照

math - 回転行列を使用して体軸を地球軸に?[openGL]

私は現在、ジャイロスコープから収集されたデータを単純な3Dグラフとして表すことになっているプロジェクトに取り組んでいますが、私が書いたものは完全には機能しません。軸を統合してからオブジェクトを回転させただけです。

解決策を探していて、回転行列と呼ばれるものを見つけましたが、それがどのように機能するかはよくわかりません。開始角度[0,0,0]を取得してそのような行列に変換し、ジャイロデータを取得する必要があると思います[yaw 、pitch、roll]そしてそれらを同様の行列に変換し、それらを乗算し、この新しい行列に基づいて新しい角度を計算しますか?そして、以前の行列を「ベース」として使用してジャイロデータの新しいパッケージを取得するたびにこれを繰り返しますか?

私はそれを正しく理解しましたか?必要なのは、すでに回転しているオブジェクトを回転させる方法です。このテーマに関するリソースはどこかにありますか?「3D回転行列」を探していましたが、私が探していたものではありません...