11.07.2015 Views

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

D.2. Código fuente <strong>de</strong> los módulos más relevantes. 14953 /* Movemos la camara al centro <strong>de</strong> la caja.*/54 glTranslatef(-(maxx+minx)/2,-(maxy+miny)/2,-(maxz+minz)/2);55 }5657 /******************************************************************58 * Funcion: calculaVistaMo<strong>de</strong>lo59 * Descripcion: Situa el mo<strong>de</strong>lo en el "centro" <strong>de</strong>l mundo,60 * rotandolo segun haya pinchado el usuario.61 * Entradas: Ninguna.62 * Salidas: Ninguna.63 ******************************************************************/64 void calculaVistaMo<strong>de</strong>lo(void)65 {66 glMatrixMo<strong>de</strong>(GL_MODELVIEW);6768 glLoadI<strong>de</strong>ntity();6970 // Rotamos el mundo71 glTranslatef((maxx+minx)/2,(maxy+miny)/2,(maxz+minz)/2);72 glRotatef(rotx,1,0,0);73 glRotatef(roty,0,1,0);74 glRotatef(rotz,0,0,1);75 glTranslatef(-(maxx+minx)/2,-(maxy+miny)/2,-(maxz+minz)/2);7677 }7879 /*********************************************************************80 * Funcion: dibuja_hueso81 * Descripcion: Dibuja el hueso especificado en pantalla.82 * Entradas: marcaorigen --> Numero <strong>de</strong> la marca origen <strong>de</strong>l hueso83 * marcafin --> Numero <strong>de</strong> la marca <strong>de</strong>stino <strong>de</strong>l hueso84 * frame --> Numero <strong>de</strong> frame actual85 * radio --> Radio <strong>de</strong>l cilindro a dibujar86 * Salidas: Ninguna.87 *********************************************************************/88 void dibuja_hueso(int marcaorigen, int marcafin, int frame, float radio)89 {90 GSList *Nodo;91 TPunto3D *punto3D;92 GLUquadricObj *qobj;93 double OrigenX, OrigenY, OrigenZ;94 double DestinoX, DestinoY, DestinoZ;95 double EjeX, EjeY, EjeZ;96 double EjeRotX, EjeRotY, EjeRotZ;97 double EjeObjetivoX=0, EjeObjetivoY=0, EjeObjetivoZ=1;98 float Altura;99 float Angulo;100101 Nodo = (g_slist_nth ( mo<strong>de</strong>lo3D[marcaorigen].lista, frame));102103 if (Nodo != NULL){104 punto3D = Nodo->data;105 OrigenX = punto3D->x;106 OrigenY = punto3D->y;107 OrigenZ = punto3D->z;108109 Nodo = (g_slist_nth ( mo<strong>de</strong>lo3D[marcafin].lista, frame));110111 punto3D = Nodo->data;112 DestinoX = punto3D->x;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!