Diferencia entre revisiones de «ManuelRomero/grafica/escena1/objeto»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/grafica/escena1/nav}} <br>  
 
{{:Usuario:ManuelRomero/grafica/escena1/nav}} <br>  
  
=== Coordenadadas del objeto ===
+
=== Coordenadadas del objeto ===
  
 
#Coordenadas globales o del mundo  
 
#Coordenadas globales o del mundo  
Línea 11: Línea 11:
 
&lt;/div&gt;  
 
&lt;/div&gt;  
 
<div class="slide">
 
<div class="slide">
=== Coordenadadas del objeto ===
+
=== Coordenadadas del objeto ===
  
 
;El código fuente
 
;El código fuente
Línea 37: Línea 37:
 
</source>  
 
</source>  
 
</div> <div class="slide">
 
</div> <div class="slide">
=== Coordenadadas del objeto ===
+
=== Coordenadadas del objeto ===
  
 
*A OpenGL le especificamos bien por puntos o por vectores estos valores  
 
*A OpenGL le especificamos bien por puntos o por vectores estos valores  
Línea 44: Línea 44:
 
[[Image:CoordenadasOpenGLBásico.png|200px]]  
 
[[Image:CoordenadasOpenGLBásico.png|200px]]  
 
</div> <div class="slide">
 
</div> <div class="slide">
=== Coordenadadas del objeto ===
+
=== Coordenadadas del objeto ===
  
 
;giramos para ver mejor
 
;giramos para ver mejor
Línea 61: Línea 61:
 
</source>  
 
</source>  
 
</div> <div class="slide">
 
</div> <div class="slide">
=== Coordenadas del objeto ===
+
=== Coordenadas del objeto ===
  
 
[[Image:CoordenadasOpenGL.png|200px]]  
 
[[Image:CoordenadasOpenGL.png|200px]]  
Línea 83: Línea 83:
 
*Ahora hemos dibujado la tetera respecto al eje de coordenadas del mundo
 
*Ahora hemos dibujado la tetera respecto al eje de coordenadas del mundo
 
</div> <div class="slide">
 
</div> <div class="slide">
=== Eje de coordenadas del objeto ===
+
=== Eje de coordenadas del objeto ===
  
 
*En realidad el objeto está en una posición del espacio con sus coordenadas  
 
*En realidad el objeto está en una posición del espacio con sus coordenadas  
Línea 136: Línea 136:
 
*Paso estas coordenadas a las coordenadas del mundo
 
*Paso estas coordenadas a las coordenadas del mundo
 
*Para ello multiplico por la matriz '''''M''''' que llamaremos ''matriz de escena''
 
*Para ello multiplico por la matriz '''''M''''' que llamaremos ''matriz de escena''
'''(X,Y,Z)'''<sub>mundo</sub> ='''(X,Y,Z)'''<sub>objeto</sub> * '''M'''<sub>escena</sub>
+
*Sistema de coordenadas en que se define la escena. Define cómo se colocan los diferentes objetos en la escena.
Sistema de coordenadas en que se define la escena. Define cómo se colocan los diferentes objetos en la escena.
+
*La matriz de escena lleva movimientos de rotación traslación, giro, simetria, ...
La matriz de escena lleva movimientos de rotación traslación, giro, simetria, ...
+
}}
}}
+
  '''(X,Y,Z)'''<sub>mundo</sub> ='''(X,Y,Z)'''<sub>objeto</sub> * '''M'''<sub>escena</sub>
  
 
{{Recursos de la Web|
 
{{Recursos de la Web|

Revisión de 10:33 12 jun 2013



Coordenadadas del objeto

  1. Coordenadas globales o del mundo
  2. Coordenadas locales o del objeto
  • Dibujamos un eje de coordenadas x,y,z.
  • Estará centrado en el punto 0,0,0

</div>

Coordenadadas del objeto

El código fuente
void dibujaCoordenadas(void){
	porFlechitas();
	glLineWidth(2);
	glBegin(GL_LINES);
	   glLineWidth(3);
	   glColor3f(1,0,0);//Eje X
	   glVertex3f(0,0,0);
	   glVertex3f(15,0,0);
 
	   glColor3f(0,1,0);//Eje Y
	   glVertex3f(0,0,0);
	   glVertex3f(0,15,0);
       glColor3f(0,0,1);//Eje Z
	   glVertex3f(0,0,0);
	   glVertex3f(0,0,15);
	   glLineWidth(1);
	glEnd();
	glFlush();
}

Coordenadadas del objeto

  • A OpenGL le especificamos bien por puntos o por vectores estos valores
  • OpenGL rederiza en la pantalla y visualiza dichos puntos según le especifiquemos

CoordenadasOpenGLBásico.png

Coordenadadas del objeto

giramos para ver mejor
  • Lo giramos para ver la coordenada z. Esta parte luego la veremos
  • Para conseguirlo he girado 40º en el eje de x y 40º en el eje de y
  .. .. ..
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();   
    glRotatef(40.0f,1,0,0);
    glRotatef(40.0f,0,1,0);
    glutPostRedisplay();
  .. .. ..

Coordenadas del objeto

CoordenadasOpenGL.png

  • Este eje de coordenadas que hemos dibujado representaría el eje de coordenadas del objeto
  • Ahora dibujamos un objeto en él, por ejemplo una tetera
  • con la barra espaciadora podemos cambiar su representación, sólida o de alambres
  • Representación sólida

RTENOTITLE

  • Represetnación en alambres

RTENOTITLE

  • Representación girada

RTENOTITLE

  • Ahora hemos dibujado la tetera respecto al eje de coordenadas del mundo

Eje de coordenadas del objeto

  • En realidad el objeto está en una posición del espacio con sus coordenadas
  • La idea es llevármelo a las coordenadas del mundo, para mi de referencia
  • Planteamos este nuevo eje de coordenadas
  • Podemos ver que respecto al eje de coordenadas del mundo (0,0,0), tiene los siguientes vectores
(10,10,10)- (15,15,10)
(10,10,10)- (5,15,10)
(10,10,10)- (10,10,15)
  • Gráficamente lo podemos ver en la imagen (siempre respecto al eje de coordenadas de nuestro mundo (0,0,0) como centro

RTENOTITLE

  • Lo giramos para ver el componente z (Se observa en diferente posición pues lo he rotado respecto a X e Y de las coordenadas del mundo no de ella misma

RTENOTITLE

  • Vemos los dos ejes de coordenadas

RTENOTITLE

  • Lo giramos para verlo un poco mejor
  • Vemos el objeto en el eje de coordenadas del mundo global y lo queremos pasar al eje de coordenadas del mundo local o del objeto

RTENOTITLE

===Vamos a ver como pasar el objeto a las coordenadas locales

  • Para ello vamos a multiplicar cada vétice del objeto por una matriz de escena
  • Esta matriz permite realizar operaciones de rotación traslación y escalado
  • En nuestro caso queremos coger la tetera y
  1. Trasladarla al punto 10,10,10.
    1. trasladar 10 unidades en X
    2. trasladar 10 unidades en Y
    3. trasladar 10 unidades en Z
  2. Rotar 45 grados
Son en total 4 operaciones RTENOTITLE
.. ... .. 
  //Roto la tetera para llegar al eje de coordenadas del objeto
		  glTranslatef(10,10,10);
		  glRotated(45,0,0,1);
		  glutWireTeapot(3);
		  glFlush();
.. .. ..


Icon summary.gif

Resumen

  • En la escena tengo unos objetos
  • Cada uno tiene sus coordenadas coordenadas del objeto
  • Paso estas coordenadas a las coordenadas del mundo
  • Para ello multiplico por la matriz M que llamaremos matriz de escena
  • Sistema de coordenadas en que se define la escena. Define cómo se colocan los diferentes objetos en la escena.
  • La matriz de escena lleva movimientos de rotación traslación, giro, simetria, ...


 (X,Y,Z)mundo =(X,Y,Z)objeto * Mescena