Sergio Bombien Ответов: 2

Положение X, Y в изображении после изменения размера.


Здравствуйте, если у меня есть позиция (x, y) на изображении, то это внутри picturebox,
как я могу узнать то же самое положение, если я изменю размер изображения?
Большое вам спасибо.re>

Я постараюсь лучше объяснить, что мне нужно сделать:
На изображении (которое является плоскостью) Я хочу отметить красной точкой место, где находится пожарный извещатель.
Вот и делаем щелчок мышкой.
Я беру и сохраняю координаты (x, y) так, чтобы каждый раз, когда эта плоскость отображается (их много), каждый датчик помещался на свое место.
Моя проблема заключается в том, что если я изменю размер picturebox (sizemode = StretchImage), эти координаты больше не будут действительны. Спасибо, что так быстро ответили

Что я уже пробовал:

Получите позицию (x, y), которая не изменится, если вы измените размер изображения.

F-ES Sitecore

Должно быть, это просто элементарная математика. Вычислите координату x в процентах от ширины. Таким образом, если изображение имеет ширину 50, а x-10, то это 20% (100/width * x). Таким образом, если изображение изменено на 100 в ширину, то 20% от 100-это 20, так что это ваш новый X. Если изображение сжато до 25, то 20% от 25 равно 5, так что это ваш новый x. Проделайте то же самое с Y.

Sergio Bombien

Большое вам спасибо, я немного подзабыл математику.

2 Ответов

Рейтинг:
2

#realJSOP

Обработайте событие изменения размера для элемента управления изображением и пересчитайте нужные координаты на основе соотношения изменений для обеих сторон изображения.


Рейтинг:
1

Patrice T

Цитата:
Здравствуйте, если у меня есть позиция (x, y) на изображении, то это внутри picturebox,
как я могу узнать то же самое положение, если я изменю размер изображения?

Это действительно простая математика.
Первое решение: получить реальную картинку, определить конкретную точку, измерить ее положение на картинке, сделать копию с изменением размера и измерить новое положение.
Сравните старый размер и новый размер, старую позицию и новую позицию, найдите математику.

Второе решение: ваша задача и математика такие же, как:
вы кассир, и вы зарабатываете 3 цента за каждый доллар, который вы выставляете счет.
Сколько вы зарабатываете, если выставляете счет на $10, $50, $100 ?..