在尝试理解 numpy 四元数扩展的用法时,我看到
import numpy as np import quaternion as q theta = np.pi * 1.0 / 3.0 phi = 0.0 print(q.from_spherical_coords(theta,phi))
打印出来
(quaternion(0.866025403784439, -0, 0.5, 0))
这个四元数绕 Y 轴旋转 60 度,但我预计只绕 Z 轴旋转 60 度,因为 phi 是 0.0。theta 和 phi 是否相对于源文件发生了变化,还是我遗漏了什么?
你对四元数的理解完全正确。但我想你可能对球坐标系中theta和的用法感到困惑。phi
theta
phi
参见此处的图片,这个惯例是众所周知的。对于theta = 60,,phi = 0该点位于 zx 平面中,与 z 轴成 60 度角。因此,您需要绕 y 轴旋转 60 度才能将北极传送到该点。
theta = 60
phi = 0