【发布时间】:2010-09-07 21:03:19
【问题描述】:
我正在 GTK\C 中创建一个图像编辑程序,但我不知道如何进行缩放;我需要将基于 Cairo 的画布缩放到鼠标光标的位置,但 Cairo 只缩放到它显示的图像的中心。解决这个问题的正常方法是变换、缩放,然后再变换回来;但这弄乱了我画布周围的滚动条。
我的想法是向后滑动滚动条以补偿缩放引起的移动。通过mouse_position * (new_zoom - old_zoom) 移动滚动条应该可以工作,但它没有;它在低缩放级别时校正不足,然后在高级别时过度校正。
如何正确缩放?
我的代码在这里可见,如果有帮助的话:ScreenSnap on Github
【问题讨论】: