放大鼠标的算法(OpenGL)

Posted

技术标签:

【中文标题】放大鼠标的算法(OpenGL)【英文标题】:Algorithm to zoom into mouse(OpenGL) 【发布时间】:2010-06-06 03:14:44 【问题描述】:

我有一个左上角坐标系的 OpenGL 场景。当我 glScale 它从左上角的(0,0)放大。我希望它从鼠标的坐标(相对于 OGL 框架)放大。这是怎么做的? 谢谢

【问题讨论】:

【参考方案1】:

我相信这可以分四步完成:

    使用您的窗口系统(即 GLUT 或 SDL)具有的任何功能查找鼠标的 x 和 y 坐标,并使用 gluUnProject 获取与这些窗口坐标对应的对象坐标 平移 (x,y,0) 以将原点放在这些坐标处 按所需向量 (i,j,k) 缩放 翻译 (-x,-y,0) 将原点放回左上角

【讨论】:

【参考方案2】:

我使用 glortho 进行了平滑放大。我的解决方案的骨架是

glortho(初始视口 x、y 和大小) glcalllist(我的显示列表) 渲染 . . 循环逐渐转到最终视口坐标/大小。实现您的时间和 FPS 要求 . . glortho(最终视口 x、y 和大小) glcalllist(我的显示列表) 渲染

希望您能大致了解一下。几乎没有其他方法可以实现这一点,但我发现 glortho 方法最容易理解。

【讨论】:

以上是关于放大鼠标的算法(OpenGL)的主要内容,如果未能解决你的问题,请参考以下文章

openGL按鼠标中键实现放大缩小

opengl 在屏幕上渲染之前旋转对象以设置其正确的面

opengl算法学习--- 直线裁剪算法

opengl算法学习--- 直线裁剪算法

OpenGL:天空盒放大太多

IOS – OpenGL ES 图像凹面镜放大效果 GPUImagePinchDistortionFilter