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
-
Puedes usar este control en tus aplicaciones Visual C++ para visualizar imágenes dentro de un formulario MFC o también en entornos derivados de CWnd.Una clase que visualiza el resultado de una consulta SQL en un cuadro combinado (CCombobox) utilizando una conexion DAO.Esta es una alternativa que no necesita programar o integrar el código con tu proyecto basado en MFC Visual C++ o incluso otros lenguajes.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:

foro deVisual C++ »
