为什么 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=位置]
我目前正在学习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=位置]