23.10.2014 Views

WinApi-grafika 2D

WinApi-grafika 2D

WinApi-grafika 2D

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5. Grafika 4/20<br />

Tryb odwzorowania.<br />

Wikszo współrzdnych i wymiarów uywanych we wszystkich funkcjach GDI jest<br />

wyraone w jednostkach logicznych. Windows zmienia jednostki logiczne na jednostki<br />

urzdzenia, czyli na piksele. Sposób zmiany współrzdnych zaley m.in. od trybu<br />

odwzorowania.<br />

Windows wyrónia osiem trybów odwzorowywania:<br />

Kierunek wzrostu wartoci<br />

Tryb odwzorowania Jednostki logiczne na osi x na osi y<br />

MM_TEXT (domylny) piksel w prawo w dół<br />

MM_LOMETRIC 0,1 mm w prawo do góry<br />

MM_HIMETRIC 0,01 mm w prawo do góry<br />

MM_LOENGLISH 0,01 cala w prawo do góry<br />

MM_HIENGLISH 0,001 cala w prawo do góry<br />

MM_TWIPS 1/1440 cala w prawo do góry<br />

MM_ISOTROPIC dowolne (x=y) do wyboru do wyboru -<br />

mona zmieni rozcigło okna/widoku<br />

MM_ANISOTROPIC dowolne (x!=y) do wyboru do wyboru -<br />

mona zmieni rozcigło okna/widoku<br />

int SetMapMode(HDC hdc, int iMapMode) – pozwala na zmian trybu<br />

odwzorowania..<br />

int GetMapMode(HDC hdc) – zwraca tryb odwzorowania.<br />

Tryb odwzorowania okrela odwzorowanie „okna” (współrzdne logiczne) na „widok”<br />

(współrzdne urzdzenia) za pomoc:<br />

xViewport =(xWindow – xWindOrg) * (xViewExt / xWinExt) +<br />

xViewOrg<br />

yViewport =(yWindow – yWindOrg) * (yViewExt / yWinExt) +<br />

yViewOrg<br />

xWindow, yWindow – przekształcany punkt we współrzdnych logicznych<br />

xViewport, yViewport – wynik przekształcenia we współrzdnych urzdzenia.<br />

xWindOrg, yWindOrg, xViewOrg, yViewOrg – pocztek okna i widoku<br />

xViewExt, yViewExt, xWinExt, yWindExt – rozcigło widoku i okna. Kada rozcigło z<br />

osobna nic nie znaczy, ale stosunek rozcigłoci widoku do rozcigłoci okna okrela czynnik<br />

skalujcy niezbdny do przeliczania.<br />

BOOL DPtoLP(HDC hdc, LPPOINT lpPoints, int iNumber) – funkcja<br />

przekształca iNumber punktów urzdzenia zawartych w tablic lpPoints na punkty logiczne.<br />

BOOL LPtoDP(HDC hdc, LPPOINT lpPoints, int iNumber) – funkcja<br />

przekształca iNumber punktów logicznych zawartych w tablic lpPoints na punkty urzdzenia.<br />

Copyright © 2001-2003 Ewa Lach

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!