在 numpy 中通过球面坐标创建四元数
quaternion creation by spherical coords in numpy
在尝试理解 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
在球坐标系中的使用方式感到困惑。
见图here,这个约定众所周知。对于 theta = 60
、phi = 0
,该点位于与 z 轴成 60 度角的 zx 平面中。因此,您确实需要绕 y 轴旋转 60 度才能将北极移动到该点。
在尝试理解 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
在球坐标系中的使用方式感到困惑。
见图here,这个约定众所周知。对于 theta = 60
、phi = 0
,该点位于与 z 轴成 60 度角的 zx 平面中。因此,您确实需要绕 y 轴旋转 60 度才能将北极移动到该点。