void init()
{
glClearColor(1.0,1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-25.0,25.0,-25.0,25.0);
}
void keyboard(unsigned
char key, int x, int y)
{
switch(key) {
case 27:
exit(0);
break;
case 'j':
beosztas += 2.0;
glutPostRedisplay();
break;
case 'k':
if(beosztas > 2.0)
beosztas -= 2.0;
glutPostRedisplay();
break;
default:
break;
}
}
double horner(double
ertek)
{
double *seged;
seged = (double *)malloc(FOK*sizeof(double));
seged[0] = a[0];
for(int i = 1; i < FOK; i++) {
seged[i] = ertek*seged[i-1] + a[i];
}
return seged[FOK-1];
free(seged);
}
void display()
{
double leptetes = 50.0 / beosztas;
double akt = -25.0;
double v1,v2;
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(0.0,0.0,0.0);
glLineWidth(1.0);
glBegin(GL_LINES); //a tengelyek
glVertex2d(-25.0,0.0);
glVertex2d(25.0,0.0);
glVertex2d(0.0,-25.0);
glVertex2d(0.0,25.0);
glEnd();
glBegin(GL_LINE_STRIP); //a grafikon kirajzolása
while(akt < 25.0) {
v1 = horner(akt);
glVertex2d(akt,v1);
akt += leptetes;
v2 = horner(akt);
glVertex2d(akt,v2);
akt += leptetes;
}
glEnd();
glFlush();
}
int APIENTRY WinMain(HINSTANCE
hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place
code here.
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowSize(200,200);
glutInitWindowPosition(100,100);
glutCreateWindow("g");
init();
glutKeyboardFunc(keyboard);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}