6 opengl rotation quaternions arcball
我正在尝试实施arcball /轨迹球旋转,但我的旋转中心有问题.无论如何,我希望中心成为我屏幕的中心.
让我解释一下到目前为止我做了什么.
我创建了一个quaterion(旋转轴:vector_start x vector_end,angle:vector_start*vector_end)
从那个四元数我创建了一个旋转矩阵,以便与glMultMatrixf(矩阵)一起使用并获得所需的旋转.
问题是,虽然我的模型似乎是弧形旋转,但它应该始终围绕其本地原点旋转.无论本地原点位于何处,我如何围绕屏幕中心旋转?
我想这个问题的解决办法可能是将整个旋转轴转换到屏幕中心,然后应用旋转,但这可能吗?我在这里想念一下吗?
您应该能够通过以正确的顺序应用旋转和平移矩阵来解决这个问题。在代码中,您可以平移回原点 T(-pos_x, -pos_y, -pos_z),应用旋转,然后再次平移到对象中心 T(pos_x, pos_y, pos_z)。这通常应该有效,与旋转矩阵的构造方式无关。
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |