Получить эквивалентный пиксель двух разных широких разрешений
Я хочу получить эквивалентное расположение пикселей в двух разных широких разрешениях.
Вот пример.
В разрешении 1366x768 нужный пиксель расположен в строке 120 и столбце 300. Я хочу преобразовать его в более низкое разрешение и получить эквивалент точки 120x300 от оригинала до преобразованного.
1 ответ
Используйте проценты.
например 120/1366=60/683
знак равноx ~ 0.0878
а также 300/768=25/64
знак равноy ~ 0.3906
, Теперь просто умножьте эти проценты на желаемое разрешение.
Например, если у вас есть разрешение 800x600
и хочу эту позицию просто умножить.
x = 800 * 0.0878 = 70.24
y = 600 * 0.3906 = 234.36
Это работает, потому что положение "нормализовалось", так что оно лежит между 0
а также 1
, Все, на что вы умножите это, будет иметь одинаковые "размеры". например предположим, что мы хотим позицию 400x300
с экрана 800x600
на другом экране, чтобы у него были такие же соотношения. Мы можем сделать то же самое для вашей проблемы там:
x = 400 / 800 = 0.5
y = 300 / 600 = 0.5
Чтобы получить позицию для любого другого экрана, мы умножаем результат оттуда с разрешением.