Иллюстрированный самоучитель по Visual Studio.Net

План подготовки к свадьбе по пунктам тут. | фасадная сетка 60 гр цвет серый купить в Москве. | Хирург онколог маммолог на mirit-med.ru. | Ультразвуковая кавитация - безоперационная липосакция, цены. |

Режимы отображения координат - часть 3


#define MM_HIMETRIC 3 // 1 лог. ед. - 0,01 мм

#define MM_LOENGLISH 4 // 1 лог. ед. - 0,01 дюйма

#define MM_HIENGLISH 5 // 1 лог. ед. - 0,001 дюйма

#define MMJTWIPS 6 //1 лог. ед. - 1/1440 дюйма

//========== Преобразования по формуле ==========//

#define MM_ISOTROPIC 7 // Растяжение одинаково

#define MM_ANISOTROPIC 8 // Растяжение различно

По умолчанию действует режим ММ_ТЕХТ, в котором ось Y имеет направление сверху вниз. Последующие пять режимов предполагают, что ось Y направлена снизу-вверх. В двух последних режимах преобразование координат из логической системы в физическую выполняется в соответствии с формулами, которые приведены ниже. При этом используются следующие обозначения:

  • Viewport — область вывода, задаваемая физическими координатами;
  • Window — окно, задаваемое логическими координатами.

Выделенные точки window и viewport совмещаются, а изображение растягивается или сжимается так, что горизонтальная координата каждой точки изображения при выводе в физическое устройство вычисляется по формуле линейного преобразования:

Dx=Vox+(Vex/Wex)*(Lx-Wox)

где: Dx — аппаратная (device) или физическая Х-координата точки,

Lx - логическая (logical) Х-координата точки,

Vex - протяженность области вывода, задаваемая SetVievvportExt,

Wex — протяженность окна, задаваемая SetWindowExt,

Vox — X начала координат области вывода (SetViewportOrg),

Wox — X начала координат логического окна (SetWindowOrg).

Аналогичная формула справедлива для Y-координаты точки. Опробуем формулу на произвольном наборе данных. (Такого типа вопросы вы можете встретить на сертификационном экзамене Microsoft.) Предположим, что в режиме MM_ANISOTROPIC заданы такие параметры отображения:

//====== Выделенная точка в логическом окне

pDC->SetWindowOrg (300, 0) ;

//====== Выделенная точка в физическом окне

pDC->SetViewportOrg (200, 200);

//====== Протяженность логического окна pDC->SetWindowExt (100, 100);

//====== Протяженность физического окна

pDC->SetViewportExt (50, -200);



Начало  Назад  Вперед