Рассмотрим точку в координатах 821, 435
на изображении 1920, 1017
, приземляясь где-то посередине. Теперь масштабируйте изображение до 1243, 633
пикселей. Очевидно, что наша точка больше не находится в этих координатах, но уменьшена вместе с изображением. Как бы я вычислил, какими будут координаты новой точки?Масштабное разрешение точек хранения изображений
Для следующих предположим originalX = 1920
& newX = 1243
и что мы просто решение для первого значения x
прямо сейчас (в конце концов, делает масштаб для y
)
я сделал newX/originalX
, чтобы получить 0.64739583
, которые я могу использовать originalX * 0.64739583
и получите 1243
, указывая newX
is 64.739583%
из originalX
. Теперь вернемся к нашей предыдущей точке x
, 821. Ожидается, что x
новой точки будет 482
, за исключением того, что originalX * 0.64739583 = 531
. 482
не 531
, так что точки не совпадают, как они ожидают, с масштабированием% от 64.7
Что бы правильный расчет (если эти описанные расчеты даже не так, и что некоторые части изображения являются неправильное масштабирование), чтобы иметь возможность получить новые координаты масштабированной точки?
Некоторые другие примеры точек до/после масштабирования:
old = {width=1920, x=1807, y=996}, new = {width=1280, x=1167, y=698}
old = {width=1920, x=1178, y=814}, new = {width=1280, x=1138, y=516}
old = {width=1920, x=5, y=831}, new = {width=1517, x=5, y=693}
'х является ожидаемый 482' - ожидается от кого? – MBo
@MBo точка - это конкретное пятно графического интерфейса в изображении, которое находится в прямом центре и слегка смещено - это скриншот программы. Ожидается, что 'x' будет' 482' является результатом изменения разрешения программы (в этом случае выведения из максимизированного), что дает ему меньшее разрешение. '821' является' x' до un-maximizing, '482' после. – Scarsz