TEMA 4: Transformaciones D
Ínice. Sistemas e Coorenaas. Transformaciones Básicas. Traslación. Escalao. Rotación lana 4. Afilamiento 5. Deformaciones. Composición e Transformaciones 4. Rotación General 5. Transformación e Sistemas e Coorenaas
Introucción Nos movemos en un muno D Se ebe permitir trabajar irectamente con objetos D Sin embargo al final siempre habrá que generar una image D en pantalla Las transformaciones son las mismas que antes añaieno una tercera componente traslaciones rotaciones escalaos
Sistemas e Coorenaas Una escena D se efine por los puntos líneas planos que la componen Necesitamos un sistema para poer referenciar las coorenaas al igual que ocurría en imensiones Hace falta un tercer eje perpenicular al al Cualquier punto se escribe entonces como una terna e valores ara el sentio el eje se usa la regla e la mano erecha
Transformaciones -D Son etensiones e las transformaciones en os imensiones En el caso D teníamos inicialmente matrices pero eso sólo nos permitía operaciones el tipo or eso pasamos a matrices utiliano coorenaas homogéneas or tanto en -D aplicano la misma regla habrá que pasar a matrices 44 b b a a b a c c c b b b a a a c b a 4 4 4 4 c c c c b b b b a a a a c b a
t t t T T t t t Traslación La transformación inversa sería ara traslaar objetos traslaamos sólo sus vértices reibujamos En forma matricial: Reposiciona un objeto esplaánolo a las nuevas coorenaas t t t T
s s s S S s s s Escalao con respecto al origen La transformación inversa sería ara traslaar objetos traslaamos sólo sus vértices reibujamos En forma matricial: La posición el punto se multiplica por una constante Ha que especificar tres factores e escala s s s S
Rotación lana alreeor el eje El eje e rotación es paralelo a uno e los ejes principales El signo el ángulo viene ao por la regla e la mano erecha El punto al rotar permanece en el plano perpenicular al eje e rotación La epresión para la rotación en el eje es cos sin sin cos R cos sin sin cos R R En forma matricial:
Rotación lana alreeor el eje ara calcular la epresión e rotación alreeor el eje intercambiamos las variables cos sin sin cos cos sin sin cos Alreeor el eje Alreeor el eje cos sin sin cos R R En forma matricial:
Rotación lana alreeor el eje ara calcular la epresión e rotación alreeor el eje intercambiamos las variables cos sin sin cos cos sin sin cos Alreeor el eje Alreeor el eje cos sin sin cos R R En forma matricial:
Afilamiento shearing Consiste en llevar toos los puntos e una recta que pasa por el origen sobre uno e los ejes principales b Ejemplo: afilar la línea b sobre el eje b a Del mismo moo se transforma la línea a en el eje a
Afilamiento -D Combinano ambos afilamientos D obtenemos el D se toma una línea arbitraria que pasa por el origen se mueve al eje ejano los valores e fijos b a b a b a A
Ejemplo a Afilar la recta que pasa por los puntos 86 b Obtener las nuevas coorenaas el punto 45 rimero calculamos la epresión e la recta: t t t 6 8 / 5 / 4 La transformación entonces quea: / 5 / 4 la matri: 5 / 4 / A El punto afilao quea: A
Deformaciones Son transformaciones no lineales one la magnitu e la transformación epene e caa punto Hasta ahora las transformaciones han sio el tipo: Done: c b a F c b a F c b a F M 4 4 4 4 c c c c b b b b a a a a M Esto permite epresiones el tipo: Estas epresiones son lineales es ecir combinación lineal e Cuanos las funciones F F F no sean lineales DEFORMACIÓN
Tapering Consiste en escalar os e las tres coorenaas el punto utiliano un factor e escala que epene e la tercera coorenaa s s one f s f s Ejemplo: f
Tapering La función f puee ser lineal sencilla o puee ser too lo complicao que se quiera Ejemplo: f sin NOTAS: La maoría e las veces es obligatorio mallar el objeto El mallao puee ser selectivo: mallar con más etalle one haa más curvatura Ha que tener en cuenta que para el orenaor el objeto no es más que un conjunto e vértices aristas iscreto
Twisting Consiste en escalar os e las tres coorenaas el punto utiliano un factor e escala que epene e la tercera coorenaa cos sin sin cos one f NOTAS: Si no se malla el resultao no sale poligonal Si el eje e eformación no coincie con eje sino que está esplaao habrá que traslaar primero eshacer la traslación espués
Animación con eformaciones oemos eformar un objeto en el fotograma t luego en el fotograma t Luego el orenaor interpola entre ambos para los fotogramas intermeios t traslación escalao t t La interpolación puee ser lineal o configurable por el usuario % % 8% 5% % t t t % t t t
Animación con eformaciones
Deformaciones e caja Un tipo istinto e eformaciones son las eformaciones e caja Se coloca una caja mallaa alreeor el objeto se eforman los vértices El sistema calcula la epresión e la eformación resultante le aplica la misma transformación al objeto interior Se usa mucho en software e moelao para moelar objetos imperfectos a partir e una forma básica ieal
Ejemplo e twist
continuación Como el eje el twist no coincie con el eje habrá que llevarlo primero hasta él hacer el twist evolver el prisma a su sitio ara mover el prisma ha que traslaarlo en cinco uniaes a la iquiera 5 T... 5 D T wist T Ahora calculemos el ángulo el twist Cómo no nos icen como es la eformación en los puntos intermeios asumimos una interpolación lineal En rotamos graos En rotamos 6 graos En 4 rotamos 7 graos α π
La matri el twist será: T wist continuación c π s la matri final e la trasnformación será: D T 5 T wist ara obtener el punto A54 transformao: s c one c π s T 5 5c 5 c cos π / s sin π / s c 5s A A D4 54 cosπ / 5 sinπ / 5 5cosπ / 5 5 sinπ / 5 cosπ / 5 5sinπ / 5 A sinπ / 5 5 cosπ / 5 4
Composición e Transformaciones El escalao la traslación la rotación son transformaciones lineales a que los nuevos puntos se calculan a partir e combinaciones lineales e las componentes e los puntos originales las eformaciones no lo son! Se efine TRANSFORMACIÓN AFÍN a una combinación e transformaciones lineales aplicaas a un objeto Caa transformación venrá representaa por una sola matri que se obtenrá multiplicano las matrices e caa una e las transformaciones en el mismo oren en el que queremos que se apliquen Este hecho es el que impulsó la creación e las tarjetas gráficas aceleraoras Las transformaciones afines preservan el paralelismo e las líneas pero no sus ángulos longitues Rotación e 45º Escalao en
Transformación e planos Hasta ahora hemos visto que las transformaciones se aplican solamente a los puntos ara transformar líneas transformaremos sólo sus os etremos pintaremos la línea en el nuevo sitio ara trasnformar polígonos transformaremos sólo sus vértices ara transformar un plano el que sólo conocemos su ecuación habrá que transformar los coeficientes e la ecuación! Sea el plano A B C D Llamemos N al vector N [ A B C D] one se cumple que A B C es el vector normal al plano ocurre lo mismo con una recta La ecuación el plano en forma matricial puee ponerse como N T one [ ]
Transformación e planos Sea M la transformación afín aplicaa al plano ara transformar puntos sueltos el plano haríamos M ero para obtener la ecuación completa el plano transformao necesitamos hacer N N Q one Q es una matri que tenemos que calcular Se ve claro que M no es igual a Q escalano ara eucir la matri Q partimos e la ecuación el plano transformao: T T T... N Q M N e aquí eucimos que: T M Aunque en la práctica es mejor hacer Q Q M T
Ejemplo cos sin sin cos α α α α α R M cos sin sin cos α α α α T M Q 6 c s s c Q N N 6 c s s c ara el caso alfa I: 6
Cálculo automático e una transformación afín A veces es necesario llevar un objeto e una posición orientación a otra. or ejemplo si tu aplicación tuviese una opción e centrar el objeto en algún sitio concreto. Cómo calculamos la matri e transformación que me hace eso? Ejemplo: Solución: iviieno el problema en subproblemas más sencillos combinano toas las transformaciones
continuación Traslaamos al origen T
continuación Rotamos sobre el eje hasta llevar el segmento sobre el plano / / / / R
continuación Rotamos sobre el eje hasta llevar el segmento sobre el eje φ R φ / / / /
continuación 4 Rotamos sobre el eje hasta llevar el punto al plano / / / / R α α La matri final es: α φ R R R T M
Ejemplo
continuación
continuación
continuación
continuación
continuación
Rotación General Las rotaciones planas tenían como eje uno e los ejes principales Ahora usaremos como eje e rotación una recta cualquiera que ni siquiera ebe pasar por el origen e coorenaas La recta venrá aa por os puntos La ecuación paramétrica e la recta es: one el vector a b c inica la irección e la recta ara resolver el problema hacemos como anteriormente: iviirlo en subproblemas más sencillos ct t bt t at t
continuación Traslaamos al origen T c b a
continuación Rotamos en hasta que la recta se coloque sobre el plano a bc c b φ / / / / c b b c R φ
continuación Rotamos en hasta que la recta se coloque sobre el eje a a α / / / / a a R α
continuación 4 Rotamos en el ángulo que queríamos rotar 5 Hacemos la rotación inversa 6 Hacemos la rotación inversa 7 Deshacemos la traslación inicial Finalmente la matri e transformación completa para una rotación general será el resultao e multiplicar las siete anteriores φ R α R R T T R R R R R T M φ α α φ
Ejemplo
continuación
continuación
continuación
Ejemplo
Transformación e Sistemas e Coorenaas Hasta ahora hemos visto cómo transformar un conjunto e puntos e un objeto en otro mientras el sistema permanece fijo A veces querremos epresar los puntos el objeto en función e un sistema e coorenaas iferente Normalmente los objetos vienen efinios en un sistema local Cuano se monta la escena toos los puntos eben estar referios a un único sistema global
Caso D Sea el punto e coorenaas 84 con respecto al sistema V 84 Qué coorenaas tenrá respecto al sistema UV? 5 U La operación es equivalente a aplicarle a la misma transformación que tenríamos que aplicarle al sistema nuevo UV para llevarlo al viejo T 5 5 T 5 4
continuación si el sistema UV estuviese rotao con respecto al Qué coorenaas tenrá respecto al sistema UV? 6º V La solución es la misma: utiliar la tranformación que lleva el sistema nuevo UV al viejo U π / sin π / π / cos / cos R π / sin π R π /.548.9
Caso general D Dao un sistema UV localiao en el punto ab rotao un ángulo alfa con respecto al sistema la matri e cambio e sistema e referencia viene aa por: V U M T a b R α ab Siempre habrá que traslaar en primer lugar para no mover el sistema nuevo e sitio en la rotación ero eiste un problema no siempre es tan fácil calcular el ángulo e rotación entre ambos sistemas en V<v v > D puee pero en D es mu ifícil! U<u u > Lo más normal es que el sistema nuevo UV venga ao por la posición e su origen por las componentes e sus irecciones es ecir los vectores uv ab Cómo poemos calcular la rotación e forma más sencilla?
continuación Supongamos que los os sistemas tienen el mismo origen Los ejes el sistema nuevo son: u < u v < v u v > > α V Es fácil ver que las componentes e los vectores son: u < u cos α u sin α > v < v sin α v cosα > α En realia lo importante no es calcular el ángulo a rotar sino la matri e rotación: U cosα sinα R α sinα cosα ero si los vectores uv estuvieran normaliaos la matri poría ponerse como: u R α u v v
Caso D En D puee aplicarse la misma técnica para obtener la matri e rotación! De no ser así para llevar el sistema nuevo UV al viejo habría que hacer rotaciones iferentes Dao un sistema UVW efinio por los vectores unitarios > < > < > < w w w w v v v v u u u u w v u w v u w v u R La matri e rotación necesaria para llevar el sistema nuevo al viejo se forma e la siguiente manera: U V W
U V W Caso general D Dao un sistema UVW localiao en el punto abc efinio por los vectores unitarios {uvw} la matri e cambio e sistema e referencia viene aa por: R c b a T M Siempre habrá que traslaar en primer lugar para no mover el sistema nuevo e sitio en la rotación abc w v u w v u w v u c b a M
continuación Si los vectores {uvw} no fueran unitarios puee que eso signifique que el sistema nuevo está a una escala iferente Ejemplo: un sistema en metros otro en centímetros ara llevar el nuevo al viejo habrá que escalar por U V Caso general: sean {L U L V L W } las longitues e los vectores {uvw} ara obtener la matri e cambio e sistema final habrá que multiplicar por la matri e escalao siguiente: / / / w v u w v u L L L L L L S La matri final e cambio e sistema es entonces: w v u L L L S R c b a T M
Ejemplo
continuación
Ejemplo
continuación
Ejemplo