0

だから私はbox2dで物理と衝突を処理するために使用していlibGDXます。特定の角度で特定の効果を適用できるように、衝突の角度を把握しようとしています。

いくつかの調査を行ったところ、正しい角度を取得するために必要な数学関数は atan2 であることがわかりましたが、興味深い結果が返されています。第 2 象限にあるはずの接触については、90 未満の角度を取得しています。第 3 および第 4 象限にある接触については、正の数の接触角を取得しています。ここで私が間違っている可能性があることについて、誰かが何か洞察を持っていますか?

float other_x = contact.getWorldManifold().getPoints()[0].x * GameScreen.BOX_TO_WORLD;
float other_y = contact.getWorldManifold().getPoints()[0].y * GameScreen.BOX_TO_WORLD;
float playerXpos = this.getX();
float playerYpos = this.getY();

float damageAngle = (float)Math.atan2((other_y - playerYpos), (other_x - playerXpos));

damageAngle = (float) (damageAngle * (180d/Math.PI));

はい、世界多様体のインデックスには座標情報が含まれています。なぜatan2これらの値を返すのか理解できないようです。

編集だから私は、問題は atan2 ではなく、WorldManifold によって返される連絡先情報にあると考えています。だから私の質問は、連絡先情報がこのようにずれているような問題は何でしょうか?

4

0 に答える 0