Ha a Graphics osztály függvényeivel rajzolunk, akkor alapesetben minden megadott érték a képernyő koordináta rendszerében lesz értelmezve, méghozzá pixelben mérve. Ez azt eredményezi, hogy a 0-0 pont a képernyő bal felső sarka lesz és az x tengely értéke balról jobbra nő, míg az y tengely értékei fentről lefelé.
Nyomtatáskor szintén a Graphics osztályt hívhatjuk segítségül a nyomtatandó ábra, feliratok kirajzolásához. Ez esetben valószínűleg szívesebben adnánk meg a méreteket milliméterben, hogy azok pontosan oda kerüljenek a papírlapra, ahová szeretnénk. Ezt nehézkes is lenne pixelben megadva eltalálni.
A GDI+ három különböző koordinátarendszert különböztet meg: World, Page, Device. Bármit is rajzoljunk a Graphics osztállyal, a függvények paramétereiként megadott értékek a World nézetben lesznek értelmezve, viszont megjelenítésükhöz konverzióra kerül sor: előbb Page, majd Device rendszerbe.
Ahhoz, hogy például milliméterben adhassuk meg a koordináta pontokat, csak annyit kell tennünk, hogy a Graphics osztály PageUnit property-nek a megfelelő értéket adjuk.
| Megnevezés |
Leírás |
| Display |
1/75 inch |
| Document |
1/300 inch |
| Inch |
1 inch |
| Millimeter |
1 mm |
| Pixel |
1 pixel |
| Point |
1/72 inch |
| World |
eredeti méret |
Ahhoz, hogy a Page rendszer origó pontját eltoljuk egy általunk megadott tetszőleges pontba, a TranslateTransform függvényt kell használnunk. Ennek két paraméterében kell megadnunk az eltolás mértékét, mely a megadott mértékegységben lesz értelmezve.
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
g.PageUnit = GraphicsUnit.Millimeter
g.TranslateTransform(50, 50)
Ezek után bármit is rajzolunk, arra már érvényesek lesznek az újonnan megadott beállítások.
Dim p As New Pen(Color.Green, 0.1)
g.DrawEllipse(p, -10, -10, 20, 20)
p.Color = Color.Black
g.DrawLine(p, -1000, 0, 1000, 0)
g.DrawLine(p, 0, -1000, 0, 1000)
End Sub 'Form1_Paint