0

アップベクトルとルックアットベクトルからバンク(ロール)角度を計算する式を理解できませんが、この角度はルックアットベクトルに垂直なプランで測定する必要があると思います。ヒントをいただければ幸いです。参考までに、私はWPFを使用しています。

私はここに別の質問を投稿しました。これは同じ問題ですが、数学のみを使用して表現されています。

4

1 に答える 1

0

これは、銀行を決定するための最終的なコードです。角度の符号を決定する必要があることに注意してください。

// project Y on plan perpendicular to look
Vector3D Yproj = new Vector3D(
    -(lookDirection.Y * lookDirection.X),
    1 - (lookDirection.Y * lookDirection.Y),
    -(lookDirection.Y * lookDirection.Z));
Yproj.Normalize();

// get absolute angle between Y projected and Up
double absAngle = Vector3D.AngleBetween(upDirection, Yproj);

// magic formula
Vector3D cross = Vector3D.CrossProduct(upDirection, Yproj);
double dot = Vector3D.DotProduct(lookDirection, cross);

// set actual signed angle
BDeg = (dot >= 0) ?  absAngle : -absAngle;
于 2010-06-19T12:47:13.950 に答える