在numpy中通过球形坐标创建四元数

时间:2018-01-28 14:15:43

标签: python numpy quaternions

在尝试理解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,或者我遗漏了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您对四元数的理解是完全正确的。但我想也许你对球形坐标系中thetaphi的使用方式感到困惑。

见图here,这个惯例是众所周知的。对于theta = 60phi = 0,该点位于zx平面中,与z轴成60度角。因此,您需要围绕y轴旋转60度,以将北极传输到此点。