【发布时间】:2013-12-09 13:03:39
【问题描述】:
所以我正在使用 2d 数组,并尝试使用 opengl 在小部件上显示它。它似乎工作正常,但它没有正确填充小部件。如下图所示,它移动到了右上角,而不是均匀地填充它。我怎样才能让它居中?
int x = -0.1;
int y = -0.1;
float lengthX = 0.9 / ROW;
float lengthY = 0.9 / COLM;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLM; j++) {
if (arr[i][j] == 1) {
glColor3f(1.0f, 1.0f, 1.0f);
} else {
glColor3f(0.0f, 0.0f, 0.0f);
}
glBegin(GL_QUADS);
// Q3 Q4 Q1 Q2
glVertex2f((-x) + 2 * i * lengthX, (-y) + 2 * j * lengthY);
glVertex2f(x + (2 * i + 1) * lengthX, (-y) + (2 * j + 1) * lengthX);
glVertex2f(x + (2 * i + 1) * lengthX, y + (2 * j + 1) * lengthY);
glVertex2f((-x) + 2 * i * lengthX, y + 2 * j * lengthY);
glEnd();
}
}
【问题讨论】:
-
你的矩阵设置是什么?另外,
ROW和COLM设置的变量是什么? -
@Alex Larsen 他们都设置为 100,
const int ROW = 100, COLM = 100; -
@Alex Larsen 是一个包含 0 或 1 值的数组