Я хочу иметь возможность вычислять координаты трехмерной точки на основе ее расстояния от начала координат и двух углов: «рыскание» вокруг оси Y и «шаг» вокруг оси X.
В этом примере расстояние от начала координат будет 50 единиц, рыскание 10 градусов и тангаж 10 градусов.
Есть ли формула для получения точки результата 3D?
@ Rabbid76 Извините, если не понятно .. Я бы сказал, рыскание - это вращение вокруг оси Y. Но 0 градусов означает смотреть на Z. Теперь стало яснее?





Если у вас есть точка, которая определяется азимутальным углом (yaw), высотным углом (pitch) и расстоянием вдоль этого вектора направления, то вам необходимо преобразовать азимутальный угол (yaw) и высотный угол (pitch) в единицу. вектор направления сначала .
См. Зенитный угол Солнца, Азимут или Углы Эйлера.
В системе координат, где ось x указывает влево, а ось z - вперед, а ось y - это вектор вверх (Левосторонняя система координат), это можно вычислить следующим образом:
x = sin(yaw) * cos(pitch)
y = sin(pitch)
z = cos(yaw) * cos(pitch)
где yaw - угол по часовой стрелке между осью z и вектором в точку (спроецированный на плоскость XZ).
Это направление нужно умножить на расстояние до начала координат:
P = distance * (x, y, z);
или
Px = distance * sin(yaw) * cos(pitch)
Py = distance * sin(pitch)
Pz = distance * cos(yaw) * cos(pitch)
Кажется, вам нужно лучше определить свои «углы». Рыскание и тангаж относятся к ориентации, а не к положению.