Diferencia entre revisiones de «ManuelRomero/grafica/escena1/objeto»
De WikiEducator
(→Eje de coordenadas del objeto) |
|||
| Línea 1: | Línea 1: | ||
| − | {{:Usuario:ManuelRomero/grafica/escena1/nav}} | + | {{:Usuario:ManuelRomero/grafica/escena1/nav}} <br> |
| − | <br> | + | |
| − | ===Coordenadadas del objeto=== | + | === Coordenadadas del objeto === |
| − | #Coordenadas globales o del mundo | + | |
| + | #Coordenadas globales o del mundo | ||
#Coordenadas locales o del objeto | #Coordenadas locales o del objeto | ||
| − | *Dibujamos un eje de coordenadas x,y,z. | + | *Dibujamos un eje de coordenadas x,y,z. |
*Estará centrado en el punto 0,0,0 | *Estará centrado en el punto 0,0,0 | ||
| − | + | ||
| + | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| − | ===Coordenadadas del objeto=== | + | === Coordenadadas del objeto === |
| + | |||
;El código fuente | ;El código fuente | ||
| − | <source lang=cpp> | + | |
| + | <source lang="cpp"> | ||
void dibujaCoordenadas(void){ | void dibujaCoordenadas(void){ | ||
porFlechitas(); | porFlechitas(); | ||
| Línea 32: | Línea 35: | ||
glFlush(); | glFlush(); | ||
} | } | ||
| − | </source> | + | </source> |
| − | </div> | + | </div> <div class="slide"> |
| − | <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 |
*OpenGL rederiza en la pantalla y visualiza dichos puntos según le especifiquemos | *OpenGL rederiza en la pantalla y visualiza dichos puntos según le especifiquemos | ||
| − | [[ | + | |
| − | </div> | + | [[Image:CoordenadasOpenGLBásico.png|200px]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
| − | ===Coordenadadas del objeto=== | + | === Coordenadadas del objeto === |
| + | |||
;giramos para ver mejor | ;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 | + | *Lo giramos para ver la coordenada z. Esta parte luego la veremos |
| − | <source lang=cpp> | + | *Para conseguirlo he girado 40º en el eje de x y 40º en el eje de y |
| + | |||
| + | <source lang="cpp"> | ||
.. .. .. | .. .. .. | ||
glMatrixMode(GL_MODELVIEW); | glMatrixMode(GL_MODELVIEW); | ||
| Línea 53: | Línea 59: | ||
glutPostRedisplay(); | glutPostRedisplay(); | ||
.. .. .. | .. .. .. | ||
| − | </source> | + | </source> |
| − | </div> | + | </div> <div class="slide"> |
| − | <div class="slide"> | + | === Coordenadas del objeto === |
| − | ===Coordenadas del objeto=== | + | |
| − | [[ | + | [[Image:CoordenadasOpenGL.png|200px]] |
| − | *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 | + | *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 | *con la barra espaciadora podemos cambiar su representación, sólida o de alambres | ||
| − | </div> | + | </div> <div class="slide"> |
| − | <div class="slide"> | + | |
*Representación sólida | *Representación sólida | ||
| − | [[ | + | |
| − | </div> | + | [[Image:Tetera1.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
*Represetnación en alambres | *Represetnación en alambres | ||
| − | [[ | + | |
| − | </div> | + | [[Image:Tetera2.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
*Representación girada | *Representación girada | ||
| − | [[ | + | |
| + | [[Image:Tetera3.png|RTENOTITLE]] | ||
| + | |||
*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> <div class="slide"> |
| − | <div class="slide"> | + | === 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 | + | *La idea es llevármelo a las coordenadas del mundo, para mi de referencia |
| − | *La idea es llevármelo a las coordenadas del mundo, para mi de referencia | + | |
*Planteamos este nuevo eje de coordenadas | *Planteamos este nuevo eje de coordenadas | ||
| − | *Podemos ver que respecto al eje de coordenadas del mundo | + | *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)- (15,15,10) | ||
(10,10,10)- (5,15,10) | (10,10,10)- (5,15,10) | ||
(10,10,10)- (10,10,15) | (10,10,10)- (10,10,15) | ||
| − | </div> | + | </div> <div class="slide"> |
| − | <div class="slide"> | + | |
*Gráficamente lo podemos ver en la imagen (siempre respecto al eje de coordenadas de nuestro mundo (0,0,0) como centro | *Gráficamente lo podemos ver en la imagen (siempre respecto al eje de coordenadas de nuestro mundo (0,0,0) como centro | ||
| − | [[Image: | + | |
| − | </div> | + | [[Image:CoordenadasObjeto1.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
| − | *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 | + | *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 |
| − | [[Image: | + | |
| − | </div> | + | [[Image:CoordenadasObjeto2.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
*Vemos los dos ejes de coordenadas | *Vemos los dos ejes de coordenadas | ||
| − | [[Image: | + | |
| − | </div> | + | [[Image:CoordenadasObjeto3.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
*Lo giramos para verlo un poco mejor | *Lo giramos para verlo un poco mejor | ||
| − | *Vemos el objeto en el eje de coordenadas del mundo global | + | *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 |
| − | [[Image: | + | |
| − | </div> | + | [[Image:CoordenadasObjeto4.png|RTENOTITLE]] |
| − | <div class="slide"> | + | </div> <div class="slide"> |
| − | ===Vamos a ver como pasar el objeto a las coordenadas locales | + | ===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 | + | *Para ello vamos a multiplicar cada vétice del objeto por una matriz de escena |
| − | *En nuestro caso queremos coger la tetera y | + | *Esta matriz permite realizar operaciones de rotación traslación y escalado |
| − | #Trasladarla al punto 10,10,10. | + | *En nuestro caso queremos coger la tetera y |
| − | ##trasladar 10 unidades en X | + | |
| − | ##trasladar 10 unidades en Y | + | #Trasladarla al punto 10,10,10. |
| − | ##trasladar 10 unidades en Z | + | ##trasladar 10 unidades en X |
| − | #Rotar 45 grados | + | ##trasladar 10 unidades en Y |
| + | ##trasladar 10 unidades en Z | ||
| + | #Rotar 45 grados | ||
| − | Son en total 4 operaciones | + | Son en total 4 operaciones [[Image:CoordenadasMundoObjeto.png|RTENOTITLE]] <source lang="cpp"> |
| − | [[ | + | |
| − | <source lang=cpp> | + | |
.. ... .. | .. ... .. | ||
//Roto la tetera para llegar al eje de coordenadas del objeto | //Roto la tetera para llegar al eje de coordenadas del objeto | ||
| Línea 124: | Línea 131: | ||
glFlush(); | glFlush(); | ||
.. .. .. | .. .. .. | ||
| − | </source> | + | </source> {{Resumen| |
| − | {{Resumen|En la escena tengo unos objetos | + | *En la escena tengo unos objetos |
| − | Cada uno tiene sus coordenadas | + | *Cada uno tiene sus coordenadas ''coordenadas del objeto'' |
| − | Paso estas coordenadas a las coordenadas del mundo | + | *Paso estas coordenadas a las coordenadas del mundo |
| − | Para ello multiplico por la matriz M 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, ... | |
}} | }} | ||
| − | + | ||
| − | + | ||
| − | + | ||
{{Recursos de la Web| | {{Recursos de la Web| | ||
http://asanchez.cs.buap.mx/arreglos_vertices.pdf | http://asanchez.cs.buap.mx/arreglos_vertices.pdf | ||
| − | }} | + | }} |
</div> | </div> | ||
Revisión de 22:31 11 jun 2013
Coordenadadas del objeto
- Coordenadas globales o del mundo
- Coordenadas locales o del objeto
- Dibujamos un eje de coordenadas x,y,z.
- Estará centrado en el punto 0,0,0
</div>







