c++ - 放大鼠标的算法(OpenGL)

标签 c++ c opengl

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

最佳答案

我相信这可以通过四个步骤完成:

  1. 使用您的窗口系统(即 GLUT 或 SDL)具有的任何功能找到鼠标的 x 和 y 坐标,并使用 gluUnProject 获取与这些窗口坐标对应的对象坐标
  2. 平移 (x,y,0) 以将原点置于这些坐标处
  3. 按您想要的 vector (i,j,k) 缩放
  4. 平移 (-x,-y,0) 将原点放回左上角

关于c++ - 放大鼠标的算法(OpenGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982985/

相关文章:

c++ - "."和 "->"运算符的混合链

C 文件创建不起作用

python - Kivy 不检测 OpenGL 2.0

c++ - 在 OpenGL 中连续暂停

c++ - 是否可以/建议返回一个范围?

c++ - 通过迭代进行二叉搜索树后序遍历

c++ - 数组溢出(为什么会这样?)

c - 枚举类型的位运算

c++ - Qt 段错误strtod

c++ - 点光源随相机移动