3D точка с двух углов и расстояния - PullRequest
0 голосов
/ 12 октября 2018

Я хочу, чтобы была возможность рассчитать координаты 3D-точки на основе ее расстояния от начала координат и двух углов: «рыскание» вокруг оси Y и «тангаж» вокруг оси X.

В этом примере расстояние от начала координат будет 50 единиц, рыскание 10 градусов и наклон 10 градусов.

Существует ли формула для получения 3D-точки результата?

Graphic

1 Ответ

0 голосов
/ 12 октября 2018

Если у вас есть точка, которая определяется азимутальным углом (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)
...