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 11:31 12 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>