Итак, я работаю с 2d массивом, и я пытаюсь отобразить его на виджетах с использованием opengl. Кажется, он работает нормально, но не правильно заполняет виджет. Вместо того, чтобы равномерно заполнять его, он перемещается в верхнем правом углу, как показано на изображении ниже. Как я могу заставить это центрировать? заполнить весь виджет 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;' –
Также, что это 'arr'? –