要放大我用的是鼠標的位置:用翻譯放大鼠標位置?
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