放大鼠标的算法(OpenGL)

jma*_*erx 7 c c++ opengl

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

Jor*_*wis 10

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

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