Generar un gráfico matemático con OpenGL
Las descargas incluyen el archivo ejecutable y los DLL's necesarios.
El programa no tiene analizador sintáctico, la ecuación no puede modificarse en tiempo de ejecución.
- Code: Seleccionar todo
- void plotFunc3D(float d)
- {
- glNewList(GLobj, GL_COMPILE);
- glEnable(GL_NORMALIZE);
- glEnable(GL_LIGHTING);
- float i,j,k;
- float u[3], v[3], w[3], x[3], n[3];
- for (i = x_min; i<x_max; i+= d){
- for (j = y_min; j<<y_max; j+= d){
- glBegin(GL_TRIANGLES);
- evalfunc(i,j, &k);
- u[0] = i; u[1] = j; u[2] = k;//cos(i*i+j*j);
- evalfunc(i+d,j, &k);
- v[0] = i+d; v[1] = j; v[2] = k;//cos((i+d)*(i+d)+j*j); A
- evalfunc(i+d,j+d, &k);
- w[0] = i+d; w[1] = j+d; w[2] = k;//cos((i+d)*(i+d)+(j+d)*(j+d));
- evalfunc(i,j+d, &k);
- x[0] = i; x[1] = j+d; x[2] = k;//cos(i*i+(j+d)*(j+d));
- cross(&n[0],u,v,w);
- glNormal3f(n[0], n[1], n[2]);
- glVertex3f(u[0], u[1], u[2]);
- glVertex3f(v[0], v[1], v[2]);
- glVertex3f(w[0], w[1], w[2]);
- cross(&n[0],u,w,x);
- glNormal3f(n[0], n[1], n[2]);
- glVertex3f(u[0], u[1], u[2]);
- glVertex3f(w[0], w[1], w[2]);
- glVertex3f(x[0], x[1], x[2]);
- glEnd();
- }
- }
- glDisable(GL_LIGHTING);
- glDisable(GL_NORMALIZE);
- glEndList();
- }
Función Principal
- Code: Seleccionar todo
- int main(){
- glutInitWindowSize(width, width);
- glutInitWindowPosition(200,200);
- glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_DOUBLE);
- (void)glutCreateWindow("glut demo");
- initGL();
- glutDisplayFunc(paintGL);
- glutReshapeFunc(resizeGL);
- glutMouseFunc(mousePressGL);
- glutMotionFunc(mouseMoveGL);
- glutKeyboardFunc(keyPressGL);
- glutMainLoop();
- return 0;
- }
Otros Artículos en esta sección
-
El articulo muestra como utilizar MYSQL API para el acceso a bases de datos MySQL utilizando Visual C++ y MFC.Una lista de Cadenas de Conexión que se pueden utilizar en conexiónes Bases de Datos desde Visual C++ utilizando ADO. También sirven para otros lenguajes de programación.Esta es una manera sencilla de hacer que tus aplicaciones no desentonen con el entorno de Windows XP.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:

foro deVisual C++ »
