我有一个弧形球相机,其旋转由两个角度(phi/theta,polar/azimuthal)定义,并通过鼠标移动进行控制。
我将这两个角度(作为欧拉角)转换为四元数,方法如下:
glm::quat rotation = glm::quat(glm::vec3(phi, theta, 0));
在某些时候,我需要将四元数转换回两个角度,但我认为有无限多个解决方案。有没有一种方法可以在没有任何滚动的情况下获取这两个角度?
或者,有没有更好的解决方案可以制作一个弧形球/轨道相机,而不使用欧拉角,并仅保留相机的四元数旋转?