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

时间:2016-05-24 02:13:09

标签: opengl pixels getpixel

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

首先,x,y坐标将进入双循环,直到x <0。宽度和y <高度,并且在该循环内,像素坐标等于x + y *宽度,我不明白为什么会这样。

1 个答案:

答案 0 :(得分:3)

这是因为像素存储在内存中的方式。

这是像素的草图:

|-------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.

位置