在我正在工作的项目中,当用户缩小时,3D场景中的平移似乎不够快。
当我检查如何实现平移时,我看到没有考虑缩放级别。
我正在考虑再添加一个名为zoomLevel的乘数,当用户远离模型时,它会变大。
现在读了一下后,我明白了如何从场景坐标创建光线。这link非常有帮助。我的问题是;我现在有一个来自场景坐标的光线,而且我的模型中有一个支点,我可以像参考一样使用。如何从这些创建zoomLevel因子?
我目前的想法是
通过添加z = -1和z = 1来找到最近和最远的点 场景坐标并应用逆投影和模型视图 矩阵。
从这两个人创建一条光线。
找到光线和我的轴心点的交点。如果点不与找到光线中最近的点相交。
创建一个像:
的值zoomLevelFactor =(nearestPointInTheRay.z() - nearestPoint)/ (farPoint - 最近点)
这有意义吗?你有什么建议吗?