相机旋转四元数可以定义为:
vector A = [x, y, z]
Q.x = A.x * sin(theta/2)
Q.y = A.y * sin(theta/2)
Q.z = A.z * sin(theta/2)
Q.w = cos(theta/2)
Run Code Online (Sandbox Code Playgroud)
其中A是位置,theta是你想要旋转相机的角度(调整俯仰)。
因此,如果您有可用的四元数,您可以通过每次验证旋转角度加/减实际角度是否正确来限制俯仰角。
我认为如果您将限制设置为
+cos(supLim/2) < (Q.w + P.w) < -cos(infLim/2)
Run Code Online (Sandbox Code Playgroud)
由于余弦是一个连续函数,因此应该可以工作。
如果您可以发布您实际使用的代码,也许我们可以提供更多帮助。
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |