3

私は最近、ゲームに簡単なボットを作成する方法を調べていました.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;
    }
}

そして私の想像では人々がそれをどのように行っているか わからない2つ目

このコードで何が起こっているかを誰かが知っている場合は、有効な値を計算する方法を説明してもらえますか? たとえば、第 3 象限と第 2 象限の角度を計算することはできません。そして、なぜ彼らは斜辺の反対ではなく、反対の三角形の隣接を計算しているのでしょうか? このコードが単一のケースであるかどうかは尋ねませんが、多くのケースですでに見ました。

より明確にするために

4

1 に答える 1