Loading [MathJax]/jax/output/CommonHTML/jax.js

Leképezés világ koordináta rendszerről a képernyő koordináta rendszerbe

A következő ábrán látható a világ és a képernyő koordináta rendszer viszonya:

Feladatunk, hogy meghatározzuk a P(x;y) pont helyzetét a képernyőn amit PK(XK,YK)-val jelölünk. A lenti nagyobb világkoordinátarendszer téglalap bal alsó sarka: (x1,y1), a jobb felső sarka (x2,y2). Tehát nem feltételül az origóból indul.

Viszont a fenti képernyő koordináta rendszer bal felső sarka mindig az origó lesz.

Először számoljuk ki a két szürke téglalapok oldalarányait:

A vízszintes arány: Lx=getmaxx()/(x2x1) lesz.

A függőleges arány: Ly=getmaxy()/(y2y1) lesz.

Tehát a képernyőt jelképező kisebb téglalap oldalainak mérete: getmaxx() és getmaxy()

A leképezésben az XK, azaz a pont képének x koordinátája az alábbi szorzattal fejezhető ki:

XK=Lx(xx1)

Az KY koordináta is hasonlóan Ly(yy1) lenne, de a képernyőn a y irány fordítva van, felülről lefelé növekszik, azért a képlet:

YK=getmaxy()Ly(yy1)

Mivel a getmaxy() az oldalarány képletből felírható: getmaxy()=Ly(y2y1), ezért behelyettesítés után:

YK=Ly(y2y1)Ly(yy1)=Lyy2Lyy1Lyy+Lyy1

Lyy1 kiesik az egyszerűsítés után, mert plusz és mínusz előjellel is szerepelnek.

YK=Lyy2Lyy=Ly(y2y)

Tehát összegezve:

XK=Lx(xx1)

YK=Ly(y2y)