缩放到视口中心

时间:2009-10-30 02:40:06

标签: c# gdi zoom

我正在尝试编写一个可缩放的UserControl而且我已经 目前跟随鲍勃鲍威尔的例子 然而,在http://www.bobpowell.net/zoompicbox.htm,我正在努力 实现是缩放到控件的中心点而不是 左上角。 有没有人有这方面的经验/想法?感谢。

1 个答案:

答案 0 :(得分:1)

您需要通过中心偏移控件的值,应用缩放变换然后向后偏移。

尝试使用以下算法计算新的左上角:

(-old_centre * factor) + old_centre

如果控件为100,100,则缩放系数为2将产生:

((-50, -50) * 2) + (50, 50) = (-100, -100) + (50, 50) = (-50, -50)

缩放系数为0.5:

((-50, -50) * 0.5) + (50, 50) = (-25, -25) + (50, 50) = (25, 25)