1

私は Unigine に取り組んでおり、フライト プログラムのコーディングを何週間も試みてきました。航空機の翼を回転させるためにこの方向を使用できるように、2 つのダミー ノード間の方向を見つける必要があります。説明をいただければ幸いです。

ここに画像の説明を入力

4

4 に答える 4

2

まず、P1 と P2 の間の距離の長さを計算する必要があります。

distance = abs(P2(y) - P1(y))

次に、角度関数を使用して角度を計算できます。

a = sin(distance / length(P12))

計算

于 2013-10-24T11:15:33.627 に答える
1

コメントで既に述べたように、P1 から P2 へのベクトルは P = P2 - P1 で与えられます。

方向は 2 つの方法で取得できます。
1. angle = tan_inverse( Py() / Px() ) を直接計算します。

In this method however, 1st quadrant and 3rd quadrant are treated in the same way as the signs cancel out.

2.このベクトルを正規化して、単位ベクトルを取得できます。これは象限の問題を軽減するため、推奨される方法です。

P(normalized) = P / (mod(p))

これで、この単位ベクトルによる内積を計算するだけで、この方向の任意のベクトルの射影を得ることができます。

于 2013-10-24T11:17:10.630 に答える
0

方向の下で、任意のベクトルに対する角度を意味する場合 ((p1,p3) とする)、次を使用して角度を計算できます。

angle = arcos( (p1,p2) * (p1,p3) / (modulus((p1,p2)) * modulus((p1,p3)) ))

*内積はどこですか。角度はラジアンになります。180/PI度に変更するには、 (PI=3.1415926...)を掛けます。モジュラスはベクトルの長さです: modulus((p1,p2))=square root((p1,p2) * (p1,p2)).

答えは C++ というより数学に関するものですが、単純な式の実装は簡単です。

于 2013-10-24T11:15:49.953 に答える