Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En esta ococasion les presento un codigo con el cual ustedes podran manipular una figura en
OpenGL con el mouse anteriormente les habia documentado como funciona cada parte del cofigo de
openGL para figuras en 2D es por eso que ahora solo he documentado las partes claves donde estan
las funciones para que pueda funcionar el mouse. Cualquier duda comenten
#include <GL/gl.h>
#include <GL/glut.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#define NP 4000
#define AGE 200
float winWid,winHeight; //Variables que se usaran mas adelante para almacenar los datos claves que
serviran para el mouse
float rx,ry;//variables que serviran para dar ciertas coordenadas
void redraw( void )//Este metodo nos servira para redibujar nuestra figura
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,0.0);
glRectf(-10.0+rx,-10.0+ry,10.0+rx,10.0+ry);//cambio de cooredenadas del rectangulo
glutSwapBuffers();
}
void motion(int x, int y)//este metodo realizara las funciones para darle coordenadas a nuestro
rectangulo al mover el mouse
{
cerr << “motion. x:” << x << “, y:” << y << ” \n”;
https://graficasporcomputadora.wordpress.com/2014/03/09/mover-figuras-con-el-mouse-en-opengl/ 1/2
12/10/2018 Mover figuras con el mouse en OpenGL – GRAFICAS POR COMPUTADORA
rx = float(x);
ry = winHeight – float(y);
}
void mousebu on(int bu on, int state, int x, int y)//metodo para dar moviemiento a traves del mouse
{
cerr << “mousebu on. x:” << x << “, y:” << y << ” \n”;
if (bu on == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
rx = float(x);
ry = winHeight – float(y);
redraw();
}
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,winWid,0.0,winHeight, -100.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glutDisplayFunc(redraw);
glutIdleFunc(redraw);
glutMotionFunc(motion);//manda llamar el metodo motion
glutMouseFunc(mousebu on);//funcion exclusiva para el mouse
glutMainLoop();
return 0;
}
https://graficasporcomputadora.wordpress.com/2014/03/09/mover-figuras-con-el-mouse-en-opengl/ 2/2