Визуальное программирование и MFC



         

Системы координат - часть 3


Соответствие между логической и физической системами координат

Соответствие между логической и физической системами координат устанавливается двумя понятиями: выделенная точка (origin) и мера протяженности (точнее, меры протяженности, так как их две: по оси X и по оси Y). Каждая из систем координат имеет свою выделенную точку. Выделенная точка логической системы координат определяется атрибутом window origin (выделенная точка окна), а выделенная точка физической системы координат - атрибутом viewport origin (выделенная точка области отображения). Соответствие устанавливается наложением двух систем так, чтобы выделенные точки совпадали. Выделенные точки задают, каким образом системы координат размещены одна относительно другой.

Работа с выделенными точками обеспечивается методами класса CPoint:

  • выделенная точка логической системы координат устанавливается методом SetWindowOrg, а получается методом GetWindowOrg;
  • выделенная точка физической системы координат устанавливается методом SetViewportOrg, а получается методом GetViewportOrg.
  • Для систем координат типа MM_TEXT, MM_LOMETRIC, MM_HIMETRIC, MM_LOENGLISH, MM_HIENGLISH, MM_TWIPS выделенные точки полностью задают соответствие. Значение двух других атрибутов соответствия для этих типов систем координат фиксированы и не могут меняться программистом.

    Соответствие между логическими и физическими координатами точки можно выразить формулами:

    xViewPort = (xWindow - xWinOrg) * xScale + xViewOrg , yViewPort = (yWindow - yWinOrg) * yScale + yViewOrg , где (xViewPort, yViewPort) - координаты произвольной точки А в физической системе; (xWindow, yWindow) - координаты произвольной точки А в логической системе; (xViewOrg, yViewOrg) - координаты выделенной точки в физической системе; (xWinOrg, yWinOrg) - координаты выделенной точки в логической системе.

    Значение xScale равно количеству пикселей, приходящихся на одно деление оси X, а yScale - количеству пикселей, приходящихся на одно деление по оси Y. Эти значения задаются атрибутами меры протяженности логической системы координат (window extents) и меры протяженности физической системы координат (viewport extents).




    Содержание  Назад  Вперед