elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¡Ayuda c++ y Open gl :) !
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¡Ayuda c++ y Open gl :) !  (Leído 1,334 veces)
V_Dan

Desconectado Desconectado

Mensajes: 8


Ver Perfil
¡Ayuda c++ y Open gl :) !
« en: 20 Enero 2013, 04:20 am »

¡Hola!
Tengo una pequeña duda con los viewports, es decir ¿Cómo hago para que cuando agrande la pantalla no se me distorsione mi figura, es decir que guarde proporción con mi ventana?
Se que se puede hacer cambiando el Ortho o los Viewports.
y otra duda
¿Cómo hago para manejar dos viewports ?
Es decir tengo mi figura en un pedazo de la pantalla y haciendole selección con el mouse , me muestra como un zoom de este pedazo de mi figura.

Agradezco si pudieran explicarme los Viewports

Muchas Gracias


//Dejo un código que permite mantener proporción con la ventana, pido rectificación :)

#include <windows.h> //Para poder usar ventanas con windows.
#include <GL/glut.h>
#include <stdio.h>
#include <iostream>

using namespace std;

//variables
float x,y,anchoview = 512,altoview = 512,cx=0,cy=0;

void init(void){ //Esto inicializa los colores
    glClearColor(0.0,0.0,0.0,0.0);
     glMatrixMode(GL_PROJECTION);   
     glOrtho(-250.0,250.0,-250.0,250.0,-1500,1500);   
}

void display (void){ //inicializamos parametros y creamos figuras

   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //Mostrar la pantalla con el color
   glColor3f (0.0, 1.0, 0.0);//Color de nuestros objetos

      glutWireCube(490);
   
   glutSwapBuffers();

   
}
 
//void ControlRaton(int button,int state,int x,int y) {
   //if
void nuevapan (int nuevoancho, int nuevoalto){

   
   if(nuevoancho>(nuevoalto*2)){
      glViewport(((nuevoancho/2)-(nuevoancho+nuevoalto)/32),((nuevoalto/2)-(nuevoancho+nuevoalto)/32),(nuevoancho+nuevoalto)/16,(nuevoancho+nuevoalto)/16);
   }
   else {
   glViewport(((nuevoancho/2)-(nuevoancho+nuevoalto)/6),((nuevoalto/2)-(nuevoancho+nuevoalto)/6),(nuevoancho+nuevoalto)/3,(nuevoancho+nuevoalto)/3);
   //primero centramos el viewport al divir toda la dimension de la pantalla (x o y) en 2, luego le restamos un valor para correrlo hacia - x y bajarlo a - y estos valores son el nuevo viewport completo, pero divifido en algo para no sobre pasarlo
   }

   

}
 

int main (int argc, char** argv){

   glutInit(&argc, argv);//inicializa GLUT, encargada de genrar la pantalla
   glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); //da los parámetros que glut usara para generar su pantalla
   glutInitWindowSize(512, 512);//Tamaño de la pantalla a crear
   glutInitWindowPosition(20, 20);//Posicion inciial de la pantalla
   glutCreateWindow("Cuadrícula");//Generacióny nombre de la pantalla
   glutDisplayFunc(display);//Define el contenido de nuestra pantalla, o sea la imagen a crear con la funcion display
   //glutMouseFunc(ControlRaton);
   glutReshapeFunc(nuevapan);
   init();
   glutMainLoop(); //bucle infinito para el programa, es para esperar por eventos del telcado o el mause (si hay presion y luego se ejecuta), para usar eventos, primero debemos registrarlos 
   
   
}



 


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]Sistema de Facturacion Open Source
Software
rolly21102 0 2,588 Último mensaje 12 Mayo 2010, 07:13 am
por rolly21102
ayuda con open suse!!!!!
GNU/Linux
Druxman Mishima 6 3,231 Último mensaje 13 Mayo 2010, 23:56 pm
por Druxman Mishima
ayuda con parametro a funcion open()
Programación C/C++
luzzzifer 5 3,995 Último mensaje 26 Agosto 2010, 07:02 am
por Littlehorse
open system backtrack 5 ayuda por-favor
Wireless en Linux
lokkoya 1 2,647 Último mensaje 29 Mayo 2012, 18:21 pm
por P4nd3m0n1um
AYUDA!! PORT 22/TCP OPEN SSH
Dudas Generales
Malware_Ops24 0 2,351 Último mensaje 16 Octubre 2023, 21:24 pm
por Malware_Ops24
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines