2016-05-24 13 views
0

Ich lerne gerade über opengl und ich verstehe nicht, wie die Pixelkoordinate funktioniert.Warum ist die Pixelkoordinate in x, y Ebene x + y * Breite?

Zuerst wird die x, y-Koordinaten würde in eine Doppelschleife gehen, bis x < Breite und Höhe y < und innerhalb dieser Schleife, die Pixelkoordinate gleich x + y * Breite und I verstehen nicht, warum das ist so.

+1

gespeichert Was meinen Sie mit "Pixelkoordinaten"? Bilder sind zweidimensional und haben daher 2 Koordinaten, die normalerweise X und Y genannt werden. –

Antwort

3

Dies ergibt sich aus der Speicherung der Pixel im Speicher.

Hier ist eine Skizze der Pixel:

|-------width-------| 
+ + + + + + + + + + + <--- row_0 
+ + + + + + + + + + + <--- row_1 
+ + + + + + + + + + + <--- row_2 
     ..... 
+ + + + + + + + + + + <--- row_n 
0 1 ...   ... m columns 

Dies wird im Speicher in Zeilenhauptmodus angelegt:

[row_0,row_1,...row_n] 

Da jede Reihe width Pixel, dann das (x,y) Pixel, das bedeutet, x-te Spalte in der y-ten Zeile, wird in Position x+y*width.