私は単純なゲームで作業しており、ゲームの2D衝突反応の一部を単純化しようとしています。特定のオブジェクトが壁に当たったとき、私は衝突の法線(collisionPoint - objectCenter
)を計算し、その法線に基づいて反射します。私はその法線ベクトルを最も近いに丸めることに興味がありますが、それについては良い方法があるかどうかはわかりません。2Dベクトルを最も近い15度に丸める方法
私の現在の考えは、これはそれを行うために合理的な方法です。この
float angle = atan2(normal.Y, normal.X) * Rad2Deg;
float newAngle = ((int)(angle + 7.5f)/15) * 15.0f * Deg2Rad;
vector2 newNormal = vector2(cos(newAngle), sin(newAngle));
ような何かをしているのですか?より良い方法がありますか?
私の三角法のスキルは、これまでのものではありません...しかし、 –
これは衝突応答の設計の一部であり、数学を簡略化するものではありません。 – chaosTechnician
そのコードはおそらく私がやることでしょう。 – robbrit