Доброго дня, коллеги
Господа программисты & математики, подскажите пожалуйста, правильно ли я считаю отступ от центра относительно первоначальной точки?
Prerequisites:
container: есть контейнер вьюха, width&height которой меняется
canvas: вьюха, размер которой статичен и он больше размера container(пусть будет 1920х1080)
я располагаю canvas ровно по центру container = width / 2.0, height / 2.0
потом нужно показать в фокусе увеличенный размер canvas c фреймом (200, 100, 300, 300)
для этого я беру центр canvas изначального(1920 / 2.0, 1080 / 2.0) = (960, 540)
containerCenter = пусть будет container frame = (0, 0, 320, 240), где containerCenter = (160, 120)
составляю соотношение центров (160, 120) = (960, 540) * (tx, ty)
где tx = 160/ 960 = 0.17, ty = 120 / 540 = 0.22
далее ищу разницу центра canvas и скейлкуска канваса:
deltaX = 350 - 960= -610
deltaY = 250 - 540 = -290
затем высчитываю новый center для canvas соотношением:
(newCenterX, newCenterY) = (-610, -190) * (0.17, 0.22)
newCenterXOffset = -610 * 0.17 = -103
newCenterYOffset = -190 * 0.22 = -41.8
Финальный этап:
считаю новый center для canvas относильно container
newCenterX = containerCenter.x - newCenterXOffset = 160 + 103 = 263
newCenterY = containerCenter.y - newCenterYOffset = 120 + 41.8 = 161.8
получается очень близко к правде, но с погрешностью с десяток пикселей, в чем трабла может быть?
Заранее благодарен помогающим и прочитавшим 🙂