在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系:
图1 3D Cartesian coordinate Sys...浏览器打开
欧拉角 转四元数
则(设旋转前坐标:(x0, y0, z0), 旋转后坐标:(x3, y3, z3)):
# 四元数转换为欧拉角
def quat2eular(w, x, y, z):
# 笛卡尔坐标系
roll = math.atan2(2 * (w * x + y * z), 1 - 2 * (x * x + y * y))
pitch = math.asin(2 * (w * y - x * z)) yaw = math.atan2(2 * (w * z +...浏览器打开