2010-06-06 26 views
7

我有一個左上角座標系的OpenGL場景。當我glScale它從(0,0)左上角放大。我希望它從鼠標的座標放大(相對於OGL框架)。這是如何完成的? 感謝放大鼠標的算法(OpenGL)

回答

10

我相信這可以分四步進行:

  1. 查找使用任何功能時,您的窗口系統(例如葡萄糖轉運或SDL)鼠標的X和Y座標有是什麼,以及使用gluUnProject獲得對應於那些窗口的對象的座標的座標
  2. 由(X,Y,0)通過您的目標向量把原點在這些座標
  3. 量表(I,J,K)
  4. 由翻譯(翻譯 - x,-y,0)將原點放回頂部l eft
3

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

glortho(初始視口X,Y &大小)
glcalllist(我的顯示列表)渲染


循環以逐漸轉到最終的viewrport座標/大小。實施您的時間和FPS要求


glortho(最終視X,Y &大小)
glcalllist(我的顯示列表)
渲染

我希望你得到的總體思路。實現這一目標的方法很少,但我發現最容易理解的方法。