私は、ドットパターンを描き、ガスケットを生成する関数を使ってSierpinskiガスケットを生成しようとしています。トラブルシューティングSierpinski with OpenGL
しかし、コンパイルしてプログラムを実行すると、黒い画面だけが表示されます。問題の原因は何ですか?ここで
は私のコードです:
#include <Windows.h>
#include <gl/GL.h>
#include <glut.h>
void myInit(void) {
glClearColor(1.0, 1.0, 1.0, 0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
class GLintPoint {
public:
GLint x, y;
};
int random(int m) {
return rand() % m;
}
void drawDot(GLint x, GLint y)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
glEnd();
}
void Sierpinski(void) {
GLintPoint T[3] = {{ 10, 10 }, {300, 30}, {200, 300}};
int index = random(3);
GLintPoint point = T[index];
for (int i = 0; i < 1000; i++)
{
index = random(3);
point.x = (point.x + T[index].x)/2;
point.y = (point.y + T[index].y)/2;
drawDot(point.x, point.y);
}
glFlush();
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480);
glutInitWindowPosition(100, 150);
glutCreateWindow("Sierpinski Gasket");
glutDisplayFunc(drawDot);
myInit();
glutMainLoop();
}
あなたが白ドットと黒ドットのような単純なものを、描くことに成功していますか? – Yunnosch
はい、完全に描画されますが、これでは何も描画されません。 –
参照のために何かをうまく描くための最小限のコードも示してください。この問題は、作業中の類似コードと非作業コードの違いにある可能性があります。 – Yunnosch