問題タブ [rotational-matrices]

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 に答える
476 参照

python - z 軸に対する球のコレクションの回転

numpy 配列に格納された球の中心の座標 (x、y、z) があります。z 軸に対して球を回転できるようにしたいのですが、奇妙な結果が得られます。私のコードは回転を行いますが、上下に移動しているようです。これはローテーションによる意図的な結果かもしれませんが、そうではないと思います。これが私のコードです:

回転前の画像は次のようになります。

ここに画像の説明を入力

そして、これがその後の様子です:

ここに画像の説明を入力

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

matlab - simulink で行列を回転させる

空間内のオブジェクトの回転と移動をシミュレートするために、Simulink で同次行列を作成したいと考えています。

指定された角度を入力として受け取る 4x4 マトリックスを作成するにはどうすればよいですか?

たとえば、X 軸を横切る平行移動と Z の回転を組み合わせたものは、MATLAB では次のようになります。

主な問題は、Simulink モデルをよりコードフリー (MATLAB 解釈関数などなし) にして、ブロックだけにしたいということです。

ありがとうございました。

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

java - 回転行列を使用した回転角度は度にどのように対応しますか

回転行列を使用して Java でボックスを回転させようとしています。

(LWJGL と Slick 2D ライブラリを使用しています)

中心点を中心に 1 点を回転させる私のコードは次のとおりです。

現在、更新ごとに次のようにローテーションを更新しています。

回転数が0°から360°の角度に対応していないように見えることを除いて、これはうまく機能します

回転数を読み取り可能な角度に、またはその逆に変換する数式または何かはありますか?

0 投票する
0 に答える
1068 参照

opengl - 回転行列のオフセットを計算する

HMD を使用した仮想現実環境で作業しており、連続トラッカー データがクォータニオンとして送られてきます。そこから回転行列を計算し、あとは OpenGL に任せます。

ここで、最初に特定の方向を設定します。つまり、トラッカーからのデータをリセットし、常にオフセットを計算します。

編集:さらにテストした後、計算とソースの軸を変更して左手から右手の座標系に切り替えると、次が正しいことがわかりました。

次に、方向マトリックスにモデル ビュー マトリックスを掛けます。これは問題なく動作しますが、Enter キーを押したときに位置をリセットするルーチンを見つけるのに苦労しています。

0 投票する
0 に答える
411 参照

javascript - Javascript - 180 度の範囲でのみ回転する正規化されたベクトル

Javascript で小さな小惑星ゲームを作成しようとしていますが、船が画面に描画されて飛び回るようになりました。ただし、一定量回転させようとすると、+/- PI/2 の間でしか回転できません。180 度以上の範囲をカバーする必要があります。そうしないと、船は方向転換できません。私はカスタム 2D ベクトル クラスを使用してゼロからこれを実行しようとしています。

これが私のベクトルコード、または少なくともコンストラクターと回転関数です。

そして、これが私の船が回転しようとしている場所のコードです。

必要に応じてさらに多くのコードを再現できますが、これは私が知る限り、関連するすべてのコードです。私はコンソール印刷を試み、回転行列をいじってみました。また、毎回度から変換するのではなく、ラジアンのみを使用してみました(正直なところ、とにかくやるべきです)。

私のまったくの初心者 JavaScript について何か考えはありますか?

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

c++ - ローカル回転をグローバル回転に変換する (行列)

[C++] {DirectX 9}

TL;DR: マトリックスを使用して、X 軸のローカル回転を表す浮動小数点数をグローバル ヨー/ピッチ/ロールに変換するにはどうすればよいですか?

そこで、プレイヤーが斧のメッシュとして表現される小さなゲームを書いています。プレイヤーのビューは、マウスの動きに合わせて (Y 軸を中心に) 水平方向に回転します。[ここ]は、より良いアイデアを得るためのスクリーンショットです。

そこで、マウスを押したまま斧を前後に振るアニメーションを作成しようとしています。現時点では、プレーヤー クラス内のプレーヤーのグローバル位置と回転を変数 (m_x、m_y、m_z、m_rotationX、m_rotationY、m_rotationZ) として格納しています。

オブジェクトを描画するとき、これらすべての座標をグローバル空間に変換して、ワールド マトリックスを作成します。ええ、これらはグローバル座標です。m_rotationY は、マウスの動きに基づいて変更されます。

これが意味することは、m_rotationX をインクリメントすると (つまり、何らかのアニメーション インクリメントの sin 値によって)、オブジェクトがグローバルに回転するということです。

私の質問:「ローカル」x 回転値を「グローバル」x、y、および z 回転値に変換するには、どのような行列変換を行う必要がありますか。

これまでの私の考えでは、X Rotation Matrix を作成し、それを使用してある種のベクトルを変換することでしたが、それに関する私の実験はすべてうまくいきませんでした。

お時間をいただきありがとうございます:D

編集:

もっと図を!

やるとこうなるm_rotationX = rotationAmount;

http://imgur.com/a/yZqzx

編集2:

したがって、フェデリコの答えに基づいて、次のコードを設定しました。

これは、X 軸のローカル回転を表す回転行列を提供する必要があります。しかし、私はおそらくそれを完全に間違っています。

とにかく、これをグローバルなrotationX、rotationY、およびrotationZフロートに戻すにはどうすればよいですか

*編集 3: *

これは、マトリックスから回転角度を抽出する私の試みです。残念ながら、結果は完全にオフです。斧が見えなくなり、キャラクターがランダムに動き回ります。

数学的には、これは私には聞こえます。ここからどこへ行くべきかわからない。

フレデリコが提案したように、行列のみを使用して実装しようと思います。

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

c# - 奇妙な一人称カメラの回転 XNA

XNA 4.0 で一人称視点カメラを作成しようとしています。カメラが機能し、シーンが正常にレンダリングされました。W、A、S、D の動きも問題なく動作しますが、マウスの回転が乱れる理由がわかりません。

カメラで上を見ようとすると、世界全体が傾き、左右を見ても同じことが起こり、どちらも同じ方向を見ます。最終的に、私の世界全体がひっくり返ります:S.

私はあらゆる種類のサンプル コードを試し、見つけたすべてのチュートリアルに従いましたが、どれも私と同じ問題を抱えていません。それらは機能しないか、大幅に遅れます。

私が間違っていることはありますか?

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

c++ - ジオメトリを回転させて方向ベクトルに揃える

生成されたジオメトリを方向ベクトルに合わせようとしています。私の現在の問題を説明するには:

  • A = 正しく位置合わせされたジオメトリ (テスト用の三角形のみ)
  • B = 位置合わせが正しくないジオメトリ

問題の例

この三角形の例のコードでの私の現在のソリューション (このコードは、分割から始まる画面に表示されるすべてのノードに対して実行されます。GLM 数学ライブラリを使用しています):

点 A の方向ベクトル値:

  • x 0.000000000 フロート
  • y 0.788205445 フロート
  • z 0.615412235 フロート

点 B の方向ベクトル値:

  • x 0.0543831661 フロート
  • y 0.788205445 フロート
  • z -0.613004684 float

編集 1 (24/11/2013 @ 20:36) : A と B には関係がなく、両方とも別々に生成されます。A または B を生成する場合、位置と方向のみが既知です。

ここに投稿されたソリューションを見てきました:

しかし、ジオメトリを回転させて方向ベクトルに合わせることができませんでした。私はかなり基本的な間違ったことをしているように感じます。

どんな助けでも大歓迎です!