Здраствуйте.
Пытаюсь написать программу рисования с помощью openGL.
Пока пытаюсь записать координаты в массив и чтоб он выводился на экран.
Проблема в том что экран либо астаетса черным либо точки выводятся не там.
Вот исходник.
#include <GL/glut.h>
#include <stdio.h>
float old_x[5] ;
float old_y[5];
int i=0;//GLboolean drawpoints = GL_FALSE;
void init(void)
{glClearColor(0.0 , 0.0 , 0.0 , 1.0 );
glEnable(GL_DEPTH_TEST);
glPointSize(5);
}
void display()
{int z;int v;
float cc[5] , vv[5];
float ax ,ay;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glColor3f(01.0, .0 , 0.0);
glPushMatrix();
glBegin(GL_POINTS);
if(z<i){for(z=0 ; z<i;z++ ){
glVertex3f(old_x[z], old_y[z] ,0);
//glVertex3f(cc[1], vv[0] ,0);
//glVertex3f(cc[0], vv[1] ,0);
}
glEnd();
}
glPopMatrix();
glutSwapBuffers();
}
void reshape(int w, int h)
{glViewport(0 , 0 ,(GLsizei)w ,(GLsizei)h );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void mouse(int button, int state, int x, int y)
{if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
x=old_x;
y=old_y;
i++;
glutPostRedisplay();
}
}
int main(int argc,char** argv){
glutInit(&argc , argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400 , 400);
int glWin = glutCreateWindow("OpenGL example 1");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}