問題タブ [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.

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

iphone - クォータニオンを使用した iPhone GLGravity の例

加速度計と OpenGL の使用方法を示す GLGravity iPhone の例では、ジンバル ロックの問題が発生しています。オイラー角の代わりにクォータニオン回転を使用するコードはありますか? どんな助けでも大歓迎です、私は成功せずに長い間これに苦労しています...

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

quaternions - 1 軸ジャイロスコープでクォータニオンを取得するにはどうすればよいですか?

私の問題は、デバイスに 1 軸ジャイロスコープと 3 軸加速度計があることです。加速度計を介して四元数を取得することができましたが、ジャイロスコープでそれを行う方法がわかりません。

ジャイロスコープ (角速度情報) を使用して、四元数を取得できるようにしたいと考えています。

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

c++ - クォータニオン カメラと発射物ベクトル

私たちのソフトウェアには、マウスの動きに基づくカメラと、その心臓部にクォータニオンがあります。

この位置から発射体を発射したいのですが、それは可能ですが、カメラを使用して照準を合わせたいと考えています。発射物は、各ゲーム フレームの位置に追加するベクトルを取得します。

与えられたカメラ/クォータニオンからそのようなベクトルを取得するにはどうすればよいでしょうか?

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

math - 回転を補間する方法は?

回転を表す 2 つのベクトルがあります。開始回転 A と目標回転 B です。B に近づくために係数 F で A を補間するにはどうすればよいでしょうか?

複数の次元を補間する必要がある場合 (つまり、望ましくない回転を生成する場合)、ベクトルに単純な lerp を使用しても機能しません。おそらく、回転ベクトルからクォータニオンを構築し、slerp を使用する方法です。しかし、どうすれば、結果の四元数から新しい回転を表すベクトルを抽出できるでしょうか?

前もって感謝します。

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

math - クォータニオンを使用して回転を補間するときの反転の問題

slerpを使用して、回転を表す2つのクォータニオン間を補間します。結果として生じる回転は、グラフィックスライブラリに供給されるオイラー角として抽出されます。この種の作品ですが、私には次の問題があります。左のフレームに示すように、緑色の矢印の方向に2つの軸(1つは問題なく動作します)を中心に回転する場合

ここ

右フレームの赤い矢印で示されているように、回転はすぐにジャンプして反対側のサイトから反対側の視覚方向に回転します。

これは数学的な観点からは論理的かもしれませんが(私にとってはそうではありませんが)、望ましくありません。複数の軸を中心に回転し、補間が完了するまで常に緑色の矢印をたどるときに、視覚的に反転したり方向を変えたりすることなく、補間を実現するにはどうすればよいですか?

前もって感謝します。

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

wpf - 3D 平面のどちら側が表示されているかを判断する方法は?

これは 3D n00b の質問です。

Silverlight の PerspectiveTransform 機能の基本を実装する WPF コントロールに取り組んでおり、3 つの軸のいずれかで 2D 平面を回転させることができます。それはかなりうまくいきます。ただし、飛行機の背面が表示されているかどうかを判断するために必要な計算に少し固執しています。それを理解するための私の単純なコードは次のとおりです。

ただし、回転がいずれかの軸で +-270 から +-360 の間である場合、これは失敗します。

基礎となる変換では、Quaternion オブジェクトを使用して実際の回転を行います。これには Axis と Angle の優れたプロパティがあるため、方法がわかればそれを使用できると思います。

0 投票する
3 に答える
2576 参照

c++ - C++ / openGL: クォータニオンを使用してポイントに向かって QUAD を回転させる

特定の位置に QUAD がある場合、その法線が特定のポイントを指すように回転するにはどうすればよいですか? 色付きのブロックが単なる長方形の四角形であると想像してください。この画像は、私の言いたいことを少し示しています。四角形はすべて、球の中心を向くように配置されています。

代替テキスト http://emrahgunduz.com/wp-content/uploads/2009/01/material_id_gui-600x364.jpg

たぶん、この 2 番目の画像は、私がやろうとしていることをもう少し示しています

私はopenGL / C++(およびEigen lib)を使用しています。そして、単純なクワッドを描画する次のコードがあります。

更新 17-07 親愛なる読者へ

クワッドを回転させることで、少し前進しました。look_atいくつかのクワッドをランダムに配置してから、以下の返信の説明を使用して、このコードを使用してそれらを vector3f に向かって回転させます。

結果は次のようになります。 代替テキスト

ご覧のとおり、クワッドの回転はまだ少し「奇妙」ですが、ほぼそこまで来ています。下の画像を見ると、色付きのクワッドがあり、回転の違いがはっきりとわかります。下の色付きの球と同じ結果が得られるようにクワッドを回転させるにはどうすればよいですか?

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

opengl - opengl行列回転クォータニオン

x軸とy軸を中心に立方体を単純に回転させようとしています。

常にx軸上で立方体をxだけ回転させ、x軸の回転とは無関係にy軸上で立方体をyだけ回転させたい

最初に私は素朴にやった:

それから

ただし、最初にx上で回転し、次にyi上で回転します。xアクセスとは関係なく、y上で回転します。

クォータニオンを調べ始めたので、試してみました:

これは、2つの連続したglRotatesを実行して達成されたことをほぼ正確に実行します...したがって、1つまたは2つのステップが欠落していると思います。

クォータニオンは進むべき道ですか、それとも別のものを使用する必要がありますか?また、クォータニオンがどのステップを追加してキューブを各軸から独立して回転させることができるかを判断する方法である場合。他の誰かが同じ問題を抱えていると思います: OpenGLシーンを2軸で回転させる

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

math - カメラのピッチを制限する

カメラのクォータニオンしかない場合、カメラのピッチを効率的に制限するにはどうすればよいですか? オイラー角に変換してからクォータニオンに戻す必要がありますか、それとも他の方法はありますか?

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

math - クォータニオンと 3 つの軸

クォータニオン q と、任意の方向に向けることができる座標軸を形成する 3 つの 3D ベクトル (vx、vy、vz) が与えられますが、これらはすべて互いに垂直であり、3D 空間を形成します。

クォータニオン q が一部の 3D ベクトル (vx、vy、vz) と同じ方向 (または反対方向) に回転しているかどうかを確認するにはどうすればよいですか?