我是OpenGL的新手。我正在练习我教科书中的练习,但我无法获得所有象限中应该在布雷森汉姆线算法中的输出。
这是编码:
#include <Windows.h>
#include <GL/glut.h>
void init(void) {
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void BresnCir(void) {
int delta, deltadash;
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(3.0);
int r = 150;
int x = 0;
int y = r;
int D = 2 * (1 - r);
glBegin(GL_POINTS);
do {
glVertex2i(x, y);
if (D < 0) {
delta = 2 * D + 2 * y - 1;
if (delta <= 0) {
x++;
Right(x);
} else {
x++;
y--;
Diagonal(x, y);
}
glVertex2i(x, y);
} else {
deltadash = 2 * D - 2 * x - 1;
if (deltadash <= 0) {
x++;
y--;
Diagonal(x, y);
} else {
y--;
Down(y);
}
glVertex2i(x, y);
}
if (D == 0) {
x++;
y--;
Diagonal(x, y);
glVertex2i(x, y);
}
} while (y > 0);
glEnd();
glFlush();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 150);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(BresnCir);
glutMainLoop();
return 0;
}
但是,它仍然出现错误 C3861。