我在GTK \ C中創建圖像編輯程序,我無法弄清楚如何進行縮放工作;我需要將我的基於開羅的畫布放大到鼠標光標的位置,但開羅只縮放到它顯示的圖像的中心。解決這個問題的正常方法是轉換,縮放,然後轉換回來;但是這會弄亂我畫布周圍的滾動條。放大鼠標位置而不搞亂滾動條?
我的想法是向後滑動滾動條以補償由縮放引起的移動。移動滾動條mouse_position * (new_zoom - old_zoom)
應該可以工作,但它不會;它在低縮放級別下校正不足,然後在高級別上過度校正。
如何正確縮放?
我的代碼是在這裏看到,如果它可以幫助:ScreenSnap on Github
咦?如果我替換那一行,那麼self> zoom_point_x沒有任何數據,我需要爲這個shift_x =行。你的意思是替換它下面的行嗎? – snostorm 2010-09-17 11:21:51
對不起,我複製並粘貼了錯誤的行!現在看看。 – dave 2010-09-18 01:27:52
嗯......這似乎不工作。它現在一直大量欠缺校正。 – snostorm 2010-09-18 12:45:43