Сейчас на форуме: Kybyx, user99 (+3 невидимых)

 eXeL@B —› Оффтоп —› Пересчёт координат при непропорциональном зуме
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 18 ноября 2012 23:38
· Личное сообщение · #1

Чувствую, что истина где-то рядом, но знаний не хватает для решения задачи.
Смысл в том, что есть две картинки, 640х480 и тоже самое растянутое до 800x509. Для примера нанёс 17 точек, растянул и составил список координат которые были и которые стали. Интересует формула для перевода координат, высокая точность не важна, +-1-2 пикселя не проблема...
Вот цифры:
1 - 50x50, 62х53
2 - 100х50, 125х53
3 - 50х100, 63х106
4 - 50х380, 62х403
5 - 50х430, 62х456
6 - 100х430, 125х456
7 - 540х50, 675х53
8 - 590х50, 737х53
9 - 590х100, 737х106
10 - 590х380, 737х403
11 - 540х430, 675х456
12 - 590х430, 737х456
13 - 320х240, 400х255
14 - 320х220, 400х233
15 - 340х240, 425х255
16 - 320х260, 400х267
17 - 300х240, 375х255

Вот картинки:




Буду благодарен за любую подсказку!



Ранг: 590.6 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 19 ноября 2012 01:27
· Личное сообщение · #2

Задаем k - коэффициент масштабирования. kx = d/s = 800/640 = 1.25
Вычисляем новую координату: xd = xs * k = 50 * 1.25 = 62.5 = 62

-----
старый пень


| Сообщение посчитали полезным: ToBad


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 19 ноября 2012 01:48
· Личное сообщение · #3

r_e пишет:
Задаем k - коэффициент масштабирования. kx = d/s = 800/640 = 1.25
Вычисляем новую координату: xd = xs * k = 50 * 1.25 = 62.5 = 62


Точно. Что то я затупил...
Спасибо!



Ранг: 62.8 (постоянный), 11thx
Активность: 0.060
Статус: Участник

Создано: 09 января 2013 00:23
· Личное сообщение · #4

r_e пишет:
Вычисляем новую координату: xd = xs * k = 50 * 1.25 = 62.5 = 62


я бы еще добавил управление округлением

62.5 = 62 -- левая сторона экрана
62.5 = 63 -- правая

в зависимости от положения на экране


 eXeL@B —› Оффтоп —› Пересчёт координат при непропорциональном зуме

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати