2009-10-30 2 views
0

В настоящее время я пытаюсь написать масштабируемой UserControl и Я в настоящее время последовал примеру Боба Пауэлла на http://www.bobpowell.net/zoompicbox.htm, однако, что я пытаюсь достичь является масштабирование до центральной точки управления не в верхнем левом углу. Есть ли у кого-нибудь опыт/идея? Благодарю.Увеличить до центра вьюпорте

ответ

1

Вам необходимо компенсировать значения элемента управления центром, применить масштабное преобразование и затем смещать назад.

Попробуйте следующий алгоритм для вычисления нового верхнего левого:

(-old_centre * factor) + old_centre 

Если управление 100100 коэффициент масштабирования 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) 
Смежные вопросы