Как преобразовать две 3D-координаты в угол и снова преобразовать их - PullRequest
0 голосов
/ 24 октября 2019

Я создаю игру и хочу вращать несколько объектов пропорционально друг другу. Так что я должен быть в состоянии установить рыскание, тангаж и крен. Таким образом, у меня есть две координаты:

  • точка привязки (0,0,0)
  • и объект (ы), например (1,6,3)

А теперь я хочу преобразовать их в угол Эйлера. Я делаю это так:

    degreeYaw = Math.toDegrees(Math.atan2(X, Z)) + 180.0;
    radiusYaw = Math.sqrt(X*X + Z*Z);

    double padj = Math.sqrt(Math.pow(X, 2) + Math.pow(Z, 2));
    degreePitch = Math.toDegrees(Math.atan2(padj, Y)) + 180.0;
    radiusPitch = Math.sqrt(X*X + Y*Y);

Итак, теперь я хочу добавить некоторые значения к рысканию, тангажу и крену.

Но это пока не нужно, потому что когда я конвертирую его обратно безизменяя вращение (рыскание, тангаж, крен), это не то, что было раньшеэто только 2D, и я хочу иметь возможность вращать его по всем трем осям.

Так что моя проблема состоит только в том, чтобы преобразовать его обратно в 3D-координату или начать уже с преобразования в углы Эйлера?


Другая проблема состоит в том, что мой мозг останавливается на вычислении векторов и других сложных вещей (возможно, это потому, что мне всего 16 лет, и я еще не изучал это в своей школе)

ПослеДва дня исследований я решил создать этот вопрос.

Любая помощь с благодарностью

...