私は最近、ゲームに簡単なボットを作成する方法を調べていました.2つの方法があります.1つは、たとえばatan2とsinを使用してピッチとヨーを計算することです.
しかし、人々がそれを計算する別の方法もあり、私の質問はそれがどのように機能するかです?
コード:
void CalcAngle(float *src, float *dst, float *angles)
{
double delta[3] = {(src[0] - dst[0]), (src[1] - dst[1]), (src[2] - dst[2])};
int x = 0;
int y = 1;
int z = 2;
float hyp = delta[x] * delta[x] + delta[y] * delta[y];
angles[0] = asinf(delta[z] / hyp) * 180 / pi;
angles[1] = atanf(delta[y] / delta[x]) * 180 / pi;
if(angles[0] > 0.0)
{
angles[1] += 180;
}
}
そして私の想像では人々がそれをどのように行っているか
このコードで何が起こっているかを誰かが知っている場合は、有効な値を計算する方法を説明してもらえますか? たとえば、第 3 象限と第 2 象限の角度を計算することはできません。そして、なぜ彼らは斜辺の反対ではなく、反対の三角形の隣接を計算しているのでしょうか? このコードが単一のケースであるかどうかは尋ねませんが、多くのケースですでに見ました。