предлогаю так:
обозначения:
wx wy - размеры окна, в которое будет выводится изображение
mw mh - высота и ширина поля в клеточках
c - пикселей на клеточку.
pw, ph - размер полной картинки, очевиндно pw = c * mw, ph = c * my
x1, y1 - левая верхня точка, которая будет отображена (x < pw, y < ph)
всеми искомое число - с. вот пусть ползунок его и задает.
диапазон - min(wx / mw, wy / mh) ... min(wx , wy). при этом в левом положении с будет таким, что всё поле уместится на екране. задовать нижнюю границу не надо, c должно быть именно таким, какое запрошено. правое положение - на экране 1 клеточка.
в модуль отрисовки передается: с, x1, y1, wx, wy. так же в модуле отрисовки известны mw mh. полный размер картинки равен pw ph, но всю рисовать не нужно. рисовать надо только начиная с позиции x1 y1 на поле размером wx wy. менять размеры запрещено. x1 y1 не обязательно совпадают с границей клеточки.
при таком подходе не нужно будет выполнять повторное перемещение и масштабирование, картинка будет ровно такого размера и масштаба, какой нужен.
предлогаю так:
обозначения:
wx wy - размеры окна, в которое будет выводится изображение
mw mh - высота и ширина поля в клеточках
c - пикселей на клеточку.
pw, ph - размер полной картинки, очевиндно pw = c * mw, ph = c * my
x1, y1 - левая верхня точка, которая будет отображена (x < pw, y < ph)
всеми искомое число - с. вот пусть ползунок его и задает.
диапазон - min(wx / mw, wy / mh) ... min(wx , wy). при этом в левом положении с будет таким, что всё поле уместится на екране. задовать нижнюю границу не надо, c должно быть именно таким, какое запрошено. правое положение - на экране 1 клеточка.
в модуль отрисовки передается: с, x1, y1, wx, wy. так же в модуле отрисовки известны mw mh. полный размер картинки равен pw ph, но всю рисовать не нужно. рисовать надо только начиная с позиции x1 y1 на поле размером wx wy. менять размеры запрещено. x1 y1 не обязательно совпадают с границей клеточки.
при таком подходе не нужно будет выполнять повторное перемещение и масштабирование, картинка будет ровно такого размера и масштаба, какой нужен.