为什么 x,y 平面中的像素坐标是 x + y*width?

why is the pixel coordinate in x,y plane x + y*width?

我目前正在学习opengl,我不明白像素坐标是如何工作的。

首先,x,y坐标会进入一个双循环,直到x < width和y < height,在那个循环中,像素坐标等于x + y*width,我不明白为什么原来如此。

这是像素在内存中存储方式的结果。

这是像素的草图:

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

这是在内存中以行主要模式布局的:

[row_0,row_1,...row_n]

由于每一行有width个像素,那么(x,y)个像素,即第y行第x列,存储在x+y*width.[=15=位置]