Чтобы ответить на вопрос, необходимо сделать некоторые предположения. Если эти предположения не соответствуют вашему случаю, вам может потребоваться переименовать X, Y, Z ниже и, возможно, изменить порядок операций.
Предположим, следующая ситуация:
- X указывает на восток
- Y указывает на север
- Z указывает вверх
- Когда нет вращения, цель будет находиться на положительной оси X
- A небольшое положительное вращение Rx будет вращать цель в направлении оси Y
- Небольшое положительное вращение Ry будет вращать цель вверх
- Предположим, что Rx и Ry выражены в радианах (потому что sin и cos нуждаются в радианах в качестве входных данных); при необходимости разделите градусы на 180 и умножьте на pi
. В этом случае:
- Создайте начальную точку (Px, Py, Pz) = (D, 0, 0)
- Поверните P вокруг оси Y на угол Ry, чтобы получить точку Q = (Qx, Qy, Qz):
- Qx = cos (Ry) * Px - sin (Ry ) * Pz
- Qy = Py
- Qz = sin (Ry) * Px + cos (Ry) * Pz
- Повернуть Q вокруг Z -оси на угол Rx, чтобы получить точку S = (Sx, Sy, Sz):
- Sx = cos (Rx) * Qx - sin (Rx) * Qy
- Sy = sin ( Rx) * Qx + cos (Rx) * Qy
- Sz = Qz
- Добавьте источник в S, чтобы получить T:
- Tx = Sx + Ох
- Ты = Си + Оу
- Тз = Сз + Оз