問題タブ [vectormath]

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 投票する
0 に答える
67 参照

three.js - Obb3 から 3D キューブを取得する

Obb3 (Center、HalfVector、および axis[3]) が与えられた場合、
この Obb3 と同じ境界を持つキューブを作成するにはどうすればよいですか? 次に、この立方体を使用して obb3 境界を表示します。

vector_math と three.dart ライブラリを使用しています
。これまでのところ、私のコードは次のとおりです。

助けてくれてありがとう:]

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

c# - 現在の角度と目標位置から目標角度を計算しますか?

私は非常に単純な問題であるべきだと思うことに苦労してきました:

問題の図.

現在の進行方向の角度 (たとえば 15 度) を知っていて、ターゲットのゲームオブジェクトの変換を考慮して、ターゲットに面するために回転する必要がある角度を計算したいと考えています。上記の例では、たとえば 335 度を計算したいと思います。

target angleを計算する必要があることに注意してください。角度を指定すると、見出しを目的の角度に回転させる別のクラスがあります。私は Transform.LookAt() および他の同様の関数を認識していますが、理由があるため、この状況では適用されません (他のクラスでは、プロジェクトの制約により、ターゲット角度に到達するまで基本的にオイラー四元数と Lerp を計算します) 、Transform.LookAt() は機能しません)。

最初のアプローチでは、Vector3.forward の Dot 積と方向ベクトルを使用して角度シータを計算しようとしましたが、正しく機能しませんでした (永遠に回転したり、間違った方向に回転したりしました)。

問題の図

現在の進行方向ベクトルを計算できれば、それとターゲット方向ベクトルのドット積をとって角度シータを取得し、シータと現在の角度を使用してターゲット角度 (360 - シータなど) を計算できるのではないかと考えました。 ?) 回転したい角度を取得します。問題は、現在の角度と現在の位置しか持っていないことです。その情報から現在の進行方向ベクトルを計算する方法がわかりません。現在の位置の Z 値に任意の定数を追加し、そこから現在の位置を引いて、方向ベクトルを取得するだけですか? ハックしているようで、うまくいかないようです。

問題の図

どんなアイデアでも大歓迎です。

編集:追加情報

オリエンテーション コード /u/Asad が尋ねた内容:

それから FixedUpdate() で私は持っています:

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

math - ロケットを角速度で制御し、3D 空間でターゲットに合わせます

私の目的: ロケットを制御して 3D 空間の座標をターゲットにする

データ:

  • ターゲット位置ベクトル (x、y、z)
  • 現在位置ベクトル (x, y, z)
  • 電流方向ベクトル (x, y, z)

問題: ロケットの物理体を直線速度 (推力) と角速度 (回転) で操作できます。

開始位置/方向を設定するだけです。発射後、唯一の制御は角速度を変えることによってミサイルを回転させることです。さらに、これらの回転軸は、ロケットに対してではなく、空間に固定されています。

すべてのフレームが生成/レンダリングされる前に、速度を変更できます。ロケットはあらゆる発射位置から目的地まで船首で飛んでいきたいと思っています。

現在の位置ベクトルと方向ベクトル、およびターゲット ベクトルをロケットの回転に変換するという基本的な概念に固執しています。

どうやって進める?

現在の位置と方向に依存するターゲットへの飛行経路上のロケットの角速度を計算する方法は?

より正確な:

方向ベクトルと (ターゲット ベクトル - 位置ベクトル) = ターゲット コース ベクトルの間のデルタを最小化するために角速度を設定する必要がある方向を計算する方法は?

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

javascript - ベクトルに沿ってノードを移動する方法は?

中心点の周りに円の中にたくさんのノードがあります。最初にアークを描画してから、アーク [X,Y] 位置を使用してこれらの位置を取得し、ノードの位置に使用される配列を設定しました。JavaScript ライブラリ D3 の forcelayout を使用します。

私が今やりたいことは、ノードが特定の基準を満たしている場合、たとえば、名前がLで始まる場合、それらをより大きな円の輪郭に移動します。簡単な説明図を作りました。

x2,y2 から x3,y3 に移動したい

[X2,Y2]から[X3,Y3]に移動できるようにしたいです。[X1,Y1] というラベルを付けたのは、x1y2 から x2,y2 へのベクトルを計算するためにこれが必要だと確信しているためです。その後、そのベクトルに沿った動きを計算するために使用されますが、この動きを行う方法がわかりません

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

c++ - 頂点法線を計算すると奇妙な結果になる

これが数回静かに尋ねられたことは知っていますが、私の問題はそれを行う方法ではありません。私はこれがどのように機能するかを知っています (少なくとも私はそう思います ^^) が、実装に何か問題があるようで、後戻りできません。手続き的に生成された地形メッシュがあり、この頂点が接続されているすべての三角形の法線を平均して、各頂点の法線を計算しようとしています。通常の xyz を RGB 頂点カラーに設定すると、黒 (0, 0, 0) または青 (0, 0, 1) のいずれかがランダムに表示されます。

}

たぶん、誰かが見て、私が間違っていることを教えてくれるかもしれません。ありがとうございました。

編集: molbdnilo のコメントのおかげで、何が問題なのかがようやくわかりました。これは配列のインデックス作成の問題であり、私の 2 つのループも同様にややこしいものでした。少し休む必要があるかもしれません ;) 最終的にこれを思いつき、ループを 1 つに減らしました。

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

c# - 2-ベクトルの回転、後方への移動、領域のスキップ。C#

2-ベクトルの回転を使用しようとしていますが、2 つの問題に遭遇しました。1 つ目はベクトルが逆方向に回転しているように見えること、2 つ目はベクトルが回転するときに 2 つの領域間をスキップすることです。

これは私が回転に使用しているコードです(ベクタークラスで とdouble xを使用double y):

これらを使用してベクトルを回転させると、時計回りではなく反時計回りに回転するはずです。デモンストレーションのために、画像:

金色の元のベクトルを青色で回転

また、思った以上に回転しました。説明が難しいもう 1 つの問題は、回転がスパンの約 4 分の 2 でスムーズに機能するが、他の 2 つをスキップすることです。私が見つけたもう 1 つの問題は、ベクトルを回転させる角度が小さい場合 (私のテストでは (1, 10) を超えるもの)、回転が強く始まりますが、遅くなり、最終的には停止することです。これは C# の精度の問題のように見えますdoubleが、回転したベクトルの長さが変わらないようにすることで修正しようとしました。

とにかく、私の問題の 1 つまたはすべての原因を突き止めていただければ幸いです。