Skip to content

рефакторинг просесса отрисовки с целью поддержки больших полей #14

Description

@vadikoom

предлогаю так:

обозначения:
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 не обязательно совпадают с границей клеточки.

при таком подходе не нужно будет выполнять повторное перемещение и масштабирование, картинка будет ровно такого размера и масштаба, какой нужен.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions