私は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 が引き続き表示されます。