Как получить новое значение прямоугольника при увеличении оси x и y - PullRequest
0 голосов
/ 14 июля 2010

У меня есть прямоугольник скажем (150, 200, 25,25) и ось X до 800 и ось Y до 650. Теперь хотелось бы увеличить значение осей X и Y на 100. Также увеличивается значение прямоугольникав соответствии с осями х и у.

скажем, мой прямоугольник находится в затененном месте.Теперь я увеличиваю оси X и Y.затененная позиция также увеличивается.значение прямоугольника также нужно увеличить, чтобы оно помещалось в этом затененном месте, как и раньше.

Как мне этого добиться ...

Заранее спасибо ....

Ответы [ 2 ]

1 голос
/ 27 июля 2010

ratio = Convert.ToDouble (новая ось X) / Convert.ToDouble (старая ось X);

rect1.X = Convert.ToInt16 ((прямоугольники [c] .X) * ratio);rect1.Y = Convert.ToInt16 ((отношение прямоугольников [c] .Y *));rect1.Width = Convert.ToInt16 (прямоугольники [с]. Ширина * отношение);rect1.Height = Convert.ToInt16 (прямоугольники [c] .Высота * коэффициент);

0 голосов
/ 14 июля 2010

Используйте масштабный коэффициент для каждой оси>

ScaleFactorX = NewValueAxisX / OldValueAxisX = 900/800 (в вашем примере

NewRectValuesX = OldRectValuesX * ScaleFactorX

то же самое дляОсь Y

Если ваш прямоугольник был сверху (на 800), теперь он будет на

NewRectValue = 800 * Масштаб = 800 * 900/800 = 800 (все еще наверху)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...