2

すべてのベクトル

まず、この次のベクトルを次のように呼び出します。

ベクトル M1 = [O → M1]; ベクトル C1 = [O → E];

ベクトル M2 = [A → M2]; ベクトル C2 = [A → C];

ベクトル M3 = [B → M3]; ベクトル C3 = [B → G];

すべての M ベクトルはメイン ベクトルまたはベース ベクトルです。

私の問題は、これらのベクトル(MからC)の間の角度を見つける方法です。C が M と比較してどの方向を見たかを決定する。

例えば

1.) M1 と C1 の方向は右です。

2.) M2 および C2 方向は左です。

3.) M3 および C3 方向はバックです。

ps。下手な英語で申し訳ありませんが、私が何を言おうとしているのか理解できない場合は、私に聞いてください。

編集: 角度は時計回りの方向にする必要があります。

4

1 に答える 1

2

2 つのベクトル間の時計回りの角度を計算する Direct way の MvG のおかげで、彼のソリューションは完璧に機能しました。

double dot = C.dot(M);
double det = ((C.getX()*M.getZ()) - (C.getZ()*M.getX()));
double angle = Math.toDegrees(Math.atan2(det, dot));

String movedirection = "";
if(angle < -135 || angle >= 135){
movedirection = "Front";
};
if(angle < 135 && angle >= 45){
movedirection = "right";
};
if(angle < 45 && angle >= -45){
movedirection = "back";
};
if(angle < -45 && angle >= -135){
movedirection = "left";
};
于 2014-05-13T05:55:03.413 に答える