Está en la página 1de 2

#include

#include
linea
#include
#include
#include

<windows.h>
<GL/glut.h> // llama la libreria donde esta almacenada las funciones de
<stdlib.h>
<stdio.h>
<math.h>

GLint nNumPoints=4;
GLfloat ctrlpoints[4][3] = {
{ 0.0, 0.0, 0.0},//inicio izquiero
{ 1.0, 8.0, 0.0},//altura
{ 7.0, 0.0, 0.0},//lado ancho
{ 0.0, 0.0, 0.0}};//inicio derecha
GLfloat ctrlpoints1[4][3] = {
{ 0.0, 0.0, 0.0},//inicio izquiero
{ -1.0, 8.0, 0.0},//altura
{ -7.0, 0.0, 0.0},//lado
{ 0.0, 0.0, 0.0}};//inicio derecha
GLfloat ctrlpoints2[4][3] = {
{ 0.0, 0.0, 0.0},//inicio izquiero
{ 0.3, -6.0, 0.0},//altura
{ -5.0, 0.0, 0.0},//lado
{ 0.0, 0.0, 0.0}};//inicio derecha
GLfloat ctrlpoints3[4][3] = {
{ 0.0, 0.0, 0.0},//inicio izquiero
{ -0.3, -6.0, 0.0},//altura
{ 5.0, 0.0, 0.0},//lado
{ 0.0, 0.0, 0.0}};//inicio derecha
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
int i;// variable de cuenta
glShadeModel(GL_FLAT);
glMap1f(GL_MAP1_VERTEX_3, 0.0,1.0, 3, nNumPoints, &ctrlpoints[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glPointSize(2.0); // tamao de los puntos
glColor3f(0.0, 0.0, 1.0); //color de los puntos
glBegin(GL_POINTS);
for (i = 0; i < nNumPoints; i++)
glVertex2fv(ctrlpoints[i]);
glEnd();
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 60; i++)
glEvalCoord1f((GLfloat) i/60.0);
glEnd();
glShadeModel(GL_FLAT);
glMap1f(GL_MAP1_VERTEX_3, 0.0,1.0, 3, nNumPoints, &ctrlpoints1[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 60; i++)
glEvalCoord1f((GLfloat) i/60.0);

glEnd();
glShadeModel(GL_FLAT);
glMap1f(GL_MAP1_VERTEX_3, 0.0,1.0, 3, nNumPoints, &ctrlpoints2[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 60; i++)
glEvalCoord1f((GLfloat) i/60.0);
glEnd();
glShadeModel(GL_FLAT);
glMap1f(GL_MAP1_VERTEX_3, 0.0,1.0, 3, nNumPoints, &ctrlpoints3[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 60; i++)
glEvalCoord1f((GLfloat) i/60.0);
glEnd();
glFlush();
}
void reshape(int w, int h)
{
if(h==0)
h=1;
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(-5.0, 5.0, -5.0*(GLfloat)h/(GLfloat)w,
5.0*(GLfloat)h/(GLfloat)w, -5.0, 5.0);
else
glOrtho(-5.0*(GLfloat)w/(GLfloat)h,
5.0*(GLfloat)w/(GLfloat)h, -5.0, 5.0, -5.0, 5.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

También podría gustarte