要放大我用的是鼠标的位置:用翻译放大鼠标位置?
glTranslatef(current.ScalePoint.x,current.ScalePoint.y,0);
glScalef(current.ScaleFactor,current.ScaleFactor,current.ScaleFactor);
glTranslatef(-current.ScalePoint.x,-current.ScalePoint.y,0);
所以基本上我转换到新的原点(鼠标位置),那么当前缩放因子Scale,然后翻译回。
这种作品通常很好,但它可能有点bug。我的问题是真的,现在我心中已经推出了相机偏移所以我想是这样的:
glTranslatef(controls.MainGlFrame.GetCameraX(),
controls.MainGlFrame.GetCameraY(),0);
glTranslatef(current.ScalePoint.x,current.ScalePoint.y,0);
glScalef(current.ScaleFactor,current.ScaleFactor,current.ScaleFactor);
glTranslatef(-current.ScalePoint.x,-current.ScalePoint.y,0);
但正如我预期这并不工作。我怎么能正确地做到这一点知道:
矩阵的原点是左上角(0,0)
1单元== 1个像素
我的比例因子
我的相机的位置相对于(0,0)(原点)和
鼠标位置(屏幕到客户端)有多远。
感谢
它干了什么啦不打算对模型正确的点坐标? – Cogwheel 2010-07-01 02:01:43
这就好像它首先移动到了一点,这很难解释,但是当我第一次改变鼠标位置时,它感觉到了跳动,并不觉得它从停止的位置继续。 – jmasterx 2010-07-01 02:16:00