SlideShare una empresa de Scribd logo
1 de 8
DEBER:
 PIRAMIDE Y CUBO EN PLANO CARTESIANO

FACULTAD:       CIENCIAS ADMINISTRATIVAS

ESPECIALIDAD:   INGENIERIA EN SITEMAS

PROFESOR:       ING. STALIN FRANCIS

ALUMNA:         PAOLA ALVAREZ B.


8vo “A”
MI PRIMER PROGRAMA



* Includes
*

#include <windows.h>
#include <gl/gl.h>

* Function Declarations

LRESULT CALLBACK WndProc (HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC);
void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC);


* WinMain
 *

int WINAPI WinMain (HINSTANCE hInstance,
              HINSTANCE hPrevInstance,
              LPSTR lpCmdLine,
              int iCmdShow)
{
   WNDCLASS wc;
   HWND hWnd;
   HDC hDC;
   HGLRC hRC;
   MSG msg;
   BOOL bQuit = FALSE;
   float theta = 0.0f;

  /* register window class */
  wc.style = CS_OWNDC;
  wc.lpfnWndProc = WndProc;
  wc.cbClsExtra = 0;
  wc.cbWndExtra = 0;
  wc.hInstance = hInstance;
  wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
  wc.hCursor = LoadCursor (NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
  wc.lpszMenuName = NULL;
  wc.lpszClassName = "GLSample";
  RegisterClass (&wc);

  /* create main window */
  hWnd = CreateWindow (
    "GLSample", "OpenGL Sample",
WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,
    0, 0, 256, 256,
    NULL, NULL, hInstance, NULL);

/* enable OpenGL for the window */
EnableOpenGL (hWnd, &hDC, &hRC);

/* program main loop */
while (!bQuit)
{
   /* check for messages */
   if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
   {
       /* handle or dispatch messages */
       if (msg.message == WM_QUIT)
       {
           bQuit = TRUE;
       }
       else
       {
           TranslateMessage (&msg);
           DispatchMessage (&msg);
       }
   }
   else
   {
       /* OpenGL animation code goes here */

        glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
        glClear (GL_COLOR_BUFFER_BIT);

        glPushMatrix ();
        glRotatef (theta, 0.0f, 0.0f, 1.0f);
        glBegin (GL_TRIANGLES);
        glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f);
        glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.87f, -0.5f);
        glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f);
        glEnd ();
        glPopMatrix ();

        SwapBuffers (hDC);

        theta += 1.0f;
        Sleep (1);
    }
}

/* shutdown OpenGL */
DisableOpenGL (hWnd, hDC, hRC);
/* destroy the window explicitly */
    DestroyWindow (hWnd);

    return msg.wParam;
}


/********************
 * Window Procedure
 *
 ********************/

LRESULT CALLBACK WndProc (HWND hWnd, UINT message,
            WPARAM wParam, LPARAM lParam)
{

    switch (message)
    {
    case WM_CREATE:
      return 0;
    case WM_CLOSE:
      PostQuitMessage (0);
      return 0;

    case WM_DESTROY:
      return 0;

    case WM_KEYDOWN:
      switch (wParam)
      {
      case VK_ESCAPE:
         PostQuitMessage(0);
         return 0;
      }
      return 0;

    default:
      return DefWindowProc (hWnd, message, wParam, lParam);
    }
}


/*******************
 * Enable OpenGL
 *
 *******************/

void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC)
{
  PIXELFORMATDESCRIPTOR pfd;
int iFormat;

    /* get the device context (DC) */
    *hDC = GetDC (hWnd);

    /* set the pixel format for the DC */
    ZeroMemory (&pfd, sizeof (pfd));
    pfd.nSize = sizeof (pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW |
      PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
    iFormat = ChoosePixelFormat (*hDC, &pfd);
    SetPixelFormat (*hDC, iFormat, &pfd);

    /* create and enable the render context (RC) */
    *hRC = wglCreateContext( *hDC );
    wglMakeCurrent( *hDC, *hRC );

}


/******************
 * Disable OpenGL
 *
 ******************/

void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC)
{
  wglMakeCurrent (NULL, NULL);
  wglDeleteContext (hRC);
  ReleaseDC (hWnd, hDC);

}
SIGNIFICADOS

  wc.hInstance //Identifica la instancia del programa, para luego ser reenviada
al sistema en el proceso de registrar la clase
  wc.hIcon // Indica el tipo y el tamaño del icono en la aplicacion
  wc.hCursor //Ddiseño para el cursor que señala la posición del ratón
  wc.lpszMenuName //Menú de opciones que aparece en la ventana, y para
este caso no aperecerá ninguno porque tiene valor nulo
  wc.lpszClassName //Se coloca el nombre de la clase que realizaremos
  RegisterClass (&wc); //Indica registrar la clase
  hWnd = CreateWindow ( //Crear una nueva ventana
  glClear (GL_COLOR_BUFFER_BIT); //Borra el buffer de la memoria y queda
como al principio
  glRotatef (theta, 0.0f, 0.0f, 1.0f); // Sirve para que la figura rote
  glBegin (GL_TRIANGLES); //Indicamos la superficie del triangulo mediante
puntos y la animacion que queramos
  glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); //utiliza colores en modo
RGB, e indica los vertices
  SwapBuffers (hDC);//Son intercambios de función en formato de pixel actúan
para ventanas y referencias de contexto
  DestroyWindow (hWnd); // Destruye todo lo asociado a ventana de
propiedades
  theta += 1.0f;//Desambiguacion
  WNDCLASS wc; // Devuelve una estructura de la clase
  HWND hWnd; // Manejador de la nueva ventana
  MSG msg; // Mensages de aplicacion
  float theta //Declara una variable
  wc.style // Indica la aplicación captura de estructura
  wc.lpfnWndProc // Puntero de una función
  wc.cbClsExtra // Indica el tamaño de almacenamiento extra para esta clase
  wc.cbWndExtra //Indica el tamaño extra de almacenamiento para cada
ventana de esta clase
1= (-5,5,6)
2= (11,9 )
3= (-5,5,9)
4= (6,9,11)
5= (-5,-3,5)
6= (6,-3,5)
7= (11,9)
8= (11,6,-3)
9= (-5,-3,6)
1= (-7,1,11)
2= (7,1,11)
3= (-2,-4,1)
4= (7,1,4,1)
5= (-7,1,4,1)
6= (-2,-4,11)
7= (1,4,11)
8= (7,4,1)

Más contenido relacionado

La actualidad más candente

Ejemplos Importantisimo
Ejemplos  ImportantisimoEjemplos  Importantisimo
Ejemplos Importantisimomartha leon
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Programacion Servidor-Chat
Programacion Servidor-ChatProgramacion Servidor-Chat
Programacion Servidor-ChatEliana Ruiz
 
Depuración y profiling en Drupal: casos prácticos
Depuración y profiling en Drupal: casos prácticosDepuración y profiling en Drupal: casos prácticos
Depuración y profiling en Drupal: casos prácticosJavier Carranza
 
DDAA FPGA - Simulacion Contador Universal (Test Bench)
DDAA   FPGA - Simulacion Contador Universal (Test Bench)DDAA   FPGA - Simulacion Contador Universal (Test Bench)
DDAA FPGA - Simulacion Contador Universal (Test Bench)Fernando Marcos Marcos
 
Calculadora c++ y peliculas por mega hd
Calculadora c++ y peliculas por mega hdCalculadora c++ y peliculas por mega hd
Calculadora c++ y peliculas por mega hdDaniel Camacho
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucionJair BG
 
JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++Freddy Fuentes
 
Ejercicios de programacion en c++
Ejercicios de programacion en c++Ejercicios de programacion en c++
Ejercicios de programacion en c++Tony Pesantez
 
Clase 02 gestion de puertos - directivas
Clase 02   gestion de puertos - directivasClase 02   gestion de puertos - directivas
Clase 02 gestion de puertos - directivasalmidon_pcb
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011mario_10
 

La actualidad más candente (15)

Ejemplos Importantisimo
Ejemplos  ImportantisimoEjemplos  Importantisimo
Ejemplos Importantisimo
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Programacion Servidor-Chat
Programacion Servidor-ChatProgramacion Servidor-Chat
Programacion Servidor-Chat
 
Depuración y profiling en Drupal: casos prácticos
Depuración y profiling en Drupal: casos prácticosDepuración y profiling en Drupal: casos prácticos
Depuración y profiling en Drupal: casos prácticos
 
Mario.c
Mario.cMario.c
Mario.c
 
Rubenmajano
RubenmajanoRubenmajano
Rubenmajano
 
DDAA FPGA - Simulacion Contador Universal (Test Bench)
DDAA   FPGA - Simulacion Contador Universal (Test Bench)DDAA   FPGA - Simulacion Contador Universal (Test Bench)
DDAA FPGA - Simulacion Contador Universal (Test Bench)
 
Calculadora c++ y peliculas por mega hd
Calculadora c++ y peliculas por mega hdCalculadora c++ y peliculas por mega hd
Calculadora c++ y peliculas por mega hd
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucion
 
Problema c++
Problema c++Problema c++
Problema c++
 
JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++JUEGO CONCENTRECE PARA ENTORNO DEV C++
JUEGO CONCENTRECE PARA ENTORNO DEV C++
 
Listas con apuntadores dinámicos
Listas con apuntadores dinámicosListas con apuntadores dinámicos
Listas con apuntadores dinámicos
 
Ejercicios de programacion en c++
Ejercicios de programacion en c++Ejercicios de programacion en c++
Ejercicios de programacion en c++
 
Clase 02 gestion de puertos - directivas
Clase 02   gestion de puertos - directivasClase 02   gestion de puertos - directivas
Clase 02 gestion de puertos - directivas
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011
 

Similar a Deber piramide y cubo

Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Mery_Angie_Ugalde
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++jesicecytem
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLkdeespana
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadojesicecytem
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadoKaren_Avilaa
 
Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo openglmakapxndx
 
Intro opengl
Intro openglIntro opengl
Intro openglsispro
 
Manual de practicas de Open GL
Manual de practicas de Open GLManual de practicas de Open GL
Manual de practicas de Open GLAlincita Simon
 
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROS
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROSPROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROS
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROSArgenis Gil
 
Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Pablo Solis
 
Utilización del software de diseño(C++)
Utilización del software de diseño(C++) Utilización del software de diseño(C++)
Utilización del software de diseño(C++) equipo3-303
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Alincita Simon
 
Node Js & 3D Printer
Node Js & 3D PrinterNode Js & 3D Printer
Node Js & 3D Printernanusefue
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
 

Similar a Deber piramide y cubo (20)

Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
 
Manual de actividades
Manual de actividadesManual de actividades
Manual de actividades
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
 
Intro opengl
Intro openglIntro opengl
Intro opengl
 
Manual de practicas de Open GL
Manual de practicas de Open GLManual de practicas de Open GL
Manual de practicas de Open GL
 
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROS
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROSPROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROS
PROGRAMA DE SUMA Y MULTIPLICACION DE NUMEROS ENTEROS
 
Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303
 
Utilización del software de diseño(C++)
Utilización del software de diseño(C++) Utilización del software de diseño(C++)
Utilización del software de diseño(C++)
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
 
Proyecto de rene
Proyecto de reneProyecto de rene
Proyecto de rene
 
Mini introopengl
Mini introopenglMini introopengl
Mini introopengl
 
Renee opengl karla
Renee opengl karlaRenee opengl karla
Renee opengl karla
 
Node Js & 3D Printer
Node Js & 3D PrinterNode Js & 3D Printer
Node Js & 3D Printer
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 

Deber piramide y cubo

  • 1. DEBER: PIRAMIDE Y CUBO EN PLANO CARTESIANO FACULTAD: CIENCIAS ADMINISTRATIVAS ESPECIALIDAD: INGENIERIA EN SITEMAS PROFESOR: ING. STALIN FRANCIS ALUMNA: PAOLA ALVAREZ B. 8vo “A”
  • 2. MI PRIMER PROGRAMA * Includes * #include <windows.h> #include <gl/gl.h> * Function Declarations LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC); void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC); * WinMain * int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { WNDCLASS wc; HWND hWnd; HDC hDC; HGLRC hRC; MSG msg; BOOL bQuit = FALSE; float theta = 0.0f; /* register window class */ wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = "GLSample"; RegisterClass (&wc); /* create main window */ hWnd = CreateWindow ( "GLSample", "OpenGL Sample",
  • 3. WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, 0, 0, 256, 256, NULL, NULL, hInstance, NULL); /* enable OpenGL for the window */ EnableOpenGL (hWnd, &hDC, &hRC); /* program main loop */ while (!bQuit) { /* check for messages */ if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { /* handle or dispatch messages */ if (msg.message == WM_QUIT) { bQuit = TRUE; } else { TranslateMessage (&msg); DispatchMessage (&msg); } } else { /* OpenGL animation code goes here */ glClearColor (0.0f, 0.0f, 0.0f, 0.0f); glClear (GL_COLOR_BUFFER_BIT); glPushMatrix (); glRotatef (theta, 0.0f, 0.0f, 1.0f); glBegin (GL_TRIANGLES); glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.87f, -0.5f); glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f); glEnd (); glPopMatrix (); SwapBuffers (hDC); theta += 1.0f; Sleep (1); } } /* shutdown OpenGL */ DisableOpenGL (hWnd, hDC, hRC);
  • 4. /* destroy the window explicitly */ DestroyWindow (hWnd); return msg.wParam; } /******************** * Window Procedure * ********************/ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage (0); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: PostQuitMessage(0); return 0; } return 0; default: return DefWindowProc (hWnd, message, wParam, lParam); } } /******************* * Enable OpenGL * *******************/ void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC) { PIXELFORMATDESCRIPTOR pfd;
  • 5. int iFormat; /* get the device context (DC) */ *hDC = GetDC (hWnd); /* set the pixel format for the DC */ ZeroMemory (&pfd, sizeof (pfd)); pfd.nSize = sizeof (pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 24; pfd.cDepthBits = 16; pfd.iLayerType = PFD_MAIN_PLANE; iFormat = ChoosePixelFormat (*hDC, &pfd); SetPixelFormat (*hDC, iFormat, &pfd); /* create and enable the render context (RC) */ *hRC = wglCreateContext( *hDC ); wglMakeCurrent( *hDC, *hRC ); } /****************** * Disable OpenGL * ******************/ void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC) { wglMakeCurrent (NULL, NULL); wglDeleteContext (hRC); ReleaseDC (hWnd, hDC); }
  • 6. SIGNIFICADOS wc.hInstance //Identifica la instancia del programa, para luego ser reenviada al sistema en el proceso de registrar la clase wc.hIcon // Indica el tipo y el tamaño del icono en la aplicacion wc.hCursor //Ddiseño para el cursor que señala la posición del ratón wc.lpszMenuName //Menú de opciones que aparece en la ventana, y para este caso no aperecerá ninguno porque tiene valor nulo wc.lpszClassName //Se coloca el nombre de la clase que realizaremos RegisterClass (&wc); //Indica registrar la clase hWnd = CreateWindow ( //Crear una nueva ventana glClear (GL_COLOR_BUFFER_BIT); //Borra el buffer de la memoria y queda como al principio glRotatef (theta, 0.0f, 0.0f, 1.0f); // Sirve para que la figura rote glBegin (GL_TRIANGLES); //Indicamos la superficie del triangulo mediante puntos y la animacion que queramos glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); //utiliza colores en modo RGB, e indica los vertices SwapBuffers (hDC);//Son intercambios de función en formato de pixel actúan para ventanas y referencias de contexto DestroyWindow (hWnd); // Destruye todo lo asociado a ventana de propiedades theta += 1.0f;//Desambiguacion WNDCLASS wc; // Devuelve una estructura de la clase HWND hWnd; // Manejador de la nueva ventana MSG msg; // Mensages de aplicacion float theta //Declara una variable wc.style // Indica la aplicación captura de estructura wc.lpfnWndProc // Puntero de una función wc.cbClsExtra // Indica el tamaño de almacenamiento extra para esta clase wc.cbWndExtra //Indica el tamaño extra de almacenamiento para cada ventana de esta clase
  • 7. 1= (-5,5,6) 2= (11,9 ) 3= (-5,5,9) 4= (6,9,11) 5= (-5,-3,5) 6= (6,-3,5) 7= (11,9) 8= (11,6,-3) 9= (-5,-3,6)
  • 8. 1= (-7,1,11) 2= (7,1,11) 3= (-2,-4,1) 4= (7,1,4,1) 5= (-7,1,4,1) 6= (-2,-4,11) 7= (1,4,11) 8= (7,4,1)