Задать вопрос
kolumbou
@kolumbou
python, html, c#

Как адаптировать координаты под разные разрешения окон?

Доброго времени суток.

Вопрос скорее всего очень глупый, но мои навыки школьной и вузовской математики отказываются помочь в данном вопросе. Быть может я просто тупой кто-то все же поможет в данном вопросе.

Суть:
Имеется окно приложения размером 1024х768. В нем (лишь например) по центру имеется кнопка на координатах 512х384. То, что она в данном случае по центру - для примера и удобства, а так может быть где угодно, но ее координаты относительно окна размером 1024х768 известны.

Далее имеется окно этого же приложения, но размером 1920х1080. В нем тоже есть та же самая кнопка по центру, но ее координаты в данном случае не известны.

Есть ли возможность узнать положение кнопки в окне размером 1920х1080, при том что известно, что данная кнопка в окне размером 1024х768 находится на координатах 512х384?

Размер окна 1 = 1024х768
Кнопка А = 512х384

Размер окна 1 = 1920х1080
Кнопка А = ?


Прошу любой помощи и советов.
P.S. Автоматических способов адаптации нет, нужно высчитать (если вообще возможно) руками.
  • Вопрос задан
  • 688 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Griboks
@Griboks
Используйте относительные координаты (это которые в процентах от размера окна).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
То, что она в данном случае по центру - для примера и удобства, а так может быть где угодно, но ее координаты относительно окна размером 1024х768 известны.

Относительно какой части окна?
Есть подход с использованием anchor - когда помимо координаты хранится еще и то, относительно какой части родительского объекта она считается.
И тогда координаты кнопки по центру ЛЮБОГО окна будут - (0,0).
А дальше уже вопрос дизайна - куда и как вам надо прибивать какие элементы.
Ответ написан
Комментировать
vaut
@vaut
Простейшая пропорция:
x1/x2=Xmax1/Xmax2
от туда
x2 = x1 * Xmax2/Xmax1

x1=512 старая координата по иксу
х2=? новая координата по иксу
Xmax1=1024 размер старого окна по иксу, она же максимальная координата
Xmax2=1920 размер нового окна по иксу

х2=512*1920/1024=960
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы