Pitch, Roll, and Yaw: Exploring the Science of Rotation
Pitch, roll и yaw - это углы, описывающие ориентацию объекта в пространстве.
Pitch - это угол вокруг оси X и может быть задан как поворот головы вверх или вниз. Например, когда вы наклоняете голову набок, вы изменяете pitch. Данное значение меряется в градусах и может принимать значения от -90 до 90 градусов.
Roll - это угол вокруг оси Y и может быть задан как поворот головы вправо или влево. Например, когда вы катитесь на боку в кровати, вы изменяете roll. Данное значение также меряется в градусах и может принимать значения от -180 до 180 градусов.
Yaw - это угол вокруг оси Z и определяет поворот головы вокруг своей оси. Например, когда вы поворачиваете голову вправо или влево, то изменяется yaw. Этот угол также меряется в градусах и может принимать значения от -180 до 180 градусов.
Для работы с pitch, roll и yaw в программировании часто используется библиотека math в Python. Например, следующий код задает pitch равный 45 градусам:
import math
pitch = 45
pitch_radians = math.radians(pitch)
Или следующий код задает roll равный -30 градусам:
import math
roll = -30
roll_radians = math.radians(roll)
Кроме того, существуют также библиотеки, например pyquaternion, которые облегчают работу с углами Эйлера (pitch, roll и yaw) и позволяют выполнять различные операции, например, комбинирование поворотов.
Например, следующий код задает начальную ориентацию объекта с помощью углов pitch=45, roll=0 и yaw=-90, а затем поворачивает его на 30 градусов вокруг оси Z и на 15 градусов вокруг оси X:
from pyquaternion import Quaternion
q = Quaternion(axis=[0, 0, 1], radians=math.radians(-90)) * Quaternion(axis=[1, 0, 0], radians=math.radians(45))
q = q * Quaternion(axis=[0, 0, 1], radians=math.radians(30))
q = q * Quaternion(axis=[1, 0, 0], radians=math.radians(15))
print("Pitch: {:.2f}, Roll: {:.2f}, Yaw: {:.2f}".format(*q.radians))
Как результат, на экране будет выведено: Pitch: 60.00, Roll: 15.00, Yaw: 60.00, что означает, что объект был повернут на 30 градусов вокруг оси Z и на 15 градусов вокруг оси X.