Escalamiento
El escalamiento permite
cambiar el tamaño de un objeto expandiéndolo o contrayéndolo en sus
dimensiones.
Escalamiento
2D
El escalamiento 2D implica
el cambio de tamaño de un polígono, donde cada punto es
transformado por la multiplicación de dos factores de escalamiento: a
lo largo de los ejes respectivamente. De esta forma, las
coordenadas del nuevo punto se
obtienen como:
x1 ' = x1 · s1
x2 ' = x2 · s2
Sea s = (s1, s2) el
vector de factores
de escalamiento, y
S(s) la matriz
de escalamiento, en coordenadas homogéneas el escalamiento de un punto p
en 2D se puede expresar como el producto matricial p' = p ⋅ S
(s), es decir:
La Figura 3.1 muestra el
efecto de escalamiento de una figura con s1 = 1.5 y s2 = 2.
Escalamiento
3D
Extendiendo la idea anterior
a 3D, el escalamiento implica el cambio de tamaño de un poliedro, donde cada
punto p = (x1, x2, x3) es transformado por la multiplicación de tres
factores de escalamiento: s1, s2 y s3 a lo largo de los ejes X1, X2 y X3 respectivamente,
de esta forma, las coordenadas del nuevo punto
p' = (x1 ', x2 ', x3 ' ) se obtienen como:
x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2
x3 ' = x3 ⋅ s3
Sea s = (s1 , s2 , s3 ) el
vector de factores
de escalamiento, y
S(s) la matriz
de escalamiento, en coordenadas homogéneas el escalamiento de un punto p
en 3D se puede expresar como el producto matricial p' = p ⋅ S
(s) , es decir:
La Figura 3.2 muestra el
efecto de escalamiento de una figura con s1 = 2, s2 = 2.5 y s3 = 1.5.
Translación
La translación
permite desplazar un
objeto a lo
largo de sus dimensiones, como resultado se obtiene un cambio de
posición.
Translación
2D
La translación
2D implica el
desplazamiento de un
polígono, donde cada
punto p = (x1 , x2 ) es
trasladado d1 unidades en el eje X1 y d2 unidades en el eje X2, de esta forma, las
coordenadas del nuevo punto p' = (x1 ', x2 ' ) , se obtienen como:
x1 ' = x1 + d1
x2 ' = x2 + d 2
Sea d = (d1 , d 2 ) el
vector de distancias,
y T(d) la
matriz de translación,
en coordenadas homogéneas la translación de un punto p en 2D se puede
expresar como el producto matricial p' =
p ⋅ T (d ) , es decir:
La Figura 3.3 muestra el
efecto de translación de una figura con d1 = 1 y d2 = 2.
Translación 3D
Basándose en
la idea anterior,
se tiene que
la translación 3D
implica el desplazamiento de un
poliedro, donde cada punto p = (x1 , x2
, x3 ) es trasladado d1 unidades en el eje X1 , d2 unidades en el eje X2 y d3
unidades en el eje X3, de esta forma, las coordenadas del nuevo punto p' = (x1 ', x2 ', x3 ' ) se obtienen como:
x1 ' = x1 +
d1
x2 ' = x2 +
d 2
x3 ' = x3 +
d3
Sea d = (d1 , d 2 , d3 ) el
vector de distancias,
y T(d) la
matriz de translación,
en coordenadas homogéneas la translación de un punto p en 3D se puede
expresar como el producto matricial p' =
p ⋅ T (d ) , es decir:
La
Figura 3.4 muestra el efecto de translación de una figura con d1 = 2, d2 = 0 y
d3 = 2.
Rotación
La rotación permite girar un
objeto sobre un eje de rotación, dado un valor de ángulo de rotación 0 y su
dirección.
Rotaciones
2D
La rotación de un objeto en
2D se lleva a cabo alrededor de un punto, que es el eje puntual
(cero-dimensional) de rotación. Las rotaciones principales 2D son aquellas que se
llevan a cabo alrededor del origen, las rotaciones sobre cualquier otro punto
arbitrario se llaman rotaciones generales
2D. En esta
Sección 3.5 ,
se analizan sólo
las rotaciones principales para
todas las dimensiones,
en la Sección
3.6 se discuten
las rotaciones generales.
Para generar una rotación,
se especifica el ángulo de rotación 0, y el punto de rotación (pivote) sobre el
cual el objeto será rotado. Los ángulos de rotación positivos definen una rotación
en sentido contrario a las manecillas del reloj sobre el punto pivote (del eje
X1 al eje X2), entonces los ángulos de rotación negativos producen una rotación
en el sentido de las manecillas (del eje X2 al eje X1). [Hearn 95] describe la
rotación 2D como el giro sobre el eje de rotación que es perpendicular al plano
X1X2 (mejor conocido como plano XY) y que pasa a través del punto pivote.
Si el punto pivote se
encuentra sobre el origen (Figura 3.5), se tiene que: r es la distancia del
punto p = (x1, x2 ) al origen, 0 define la posición angular del
punto p desde la horizontal, y 0 el ángulo de rotación de p para producir el
nuevo punto p' = (x1 ', x2 ' ) .
Utilizando coordenadas polares,
el punto p = (x1 , x2 ) se
puede escribir como p = (r, Ø
) y el punto p' = (x1 ', x2 ' ) como
p' = (r, Ø + 0 ) . Pasando después
estos puntos de coordenadas polares a rectangulares se tiene que:
x1 = r cos(Ø )
x1 ' = r
cos(Ø + 0
)
x2 = r sin(Ø )
x2 ' = r
sin(Ø + 0
)
Aplicando algunas
propiedades trigonométricas:
x1 ' = r cos(Ø + 0 ) = r cosØ
cos0 − r sin Ø sin0
x2 ' = r sin(Ø + 0 ) = r cosØ
sin0 + r sin Ø cos 0
Substituyendo los valores de x1 = r cos(Ø
) y
x2 = r sin(Ø ) se obtienen las
ecuaciones para rotar un punto p = (x1,
x2 ) alrededor del origen dado un ángulo Ø:
x1 ' = x1 cos
0 − x2 sin 0
x2 '= x1 sin
0+ x2 cos0
Ecuación 3.9: Formulas para la rotación 2D alrededor del
origen.
Sea R(0) la
matriz de rotación
sobre el origen,
en coordenadas homogéneas
la rotación de un punto p alrededor del origen en 2D se puede expresar
como el producto matricial p' = p ⋅ R(0 ) , es decir:
Ecuación 3.10: Expresión matricial para la rotación 2D.
La Figura 3.6 muestra el efecto de rotación de una figura
con 0 = 45°.
Rotaciones
3D
A diferencia de la rotación
en el espacio 2D, donde para hacer rotar un objeto se necesita un punto
(cero-dimensional), en 3D para hacer rotar un objeto se necesitan dos puntos no
coincidentes que determinan un segmento de recta, cuya línea de soporte define un
eje lineal (uni-dimensional) de rotación.
Las rotaciones principales
3D, son aquellas cuando el eje de rotación se encuentra sobre alguno de los
tres ejes principales: X1, X2 o X3, las rotaciones sobre cualquier otro eje arbitrario
son llamadas rotaciones generales 3D. Se recuerda que inicialmente, se analizan
las rotaciones principales.
Por convención, los ángulos
de rotación positivos producen rotaciones en contra de las manecillas del reloj
sobre el eje de rotación, esto es si se observa el giro desde la parte positiva
del eje hacia el origen. Otra forma de determinar la dirección de un giro
positivo es mediante la regla de la mano derecha (Figura 3.7), que dice que:
“Si se coloca el dedo pulgar de la mano derecha sobre el eje de rotación apuntando
hacia la parte positiva de dicho eje, el giro natural del resto de los dedos
indica la dirección positiva del giro”.
Para entender el concepto de
rotación en 3D como una extensión de la rotación 2D, hay que recordar que la
rotación 2D es el giro sobre el eje de rotación, que es perpendicular al plano
X1 X2, el cual en 3D corresponde al eje X3, entonces se tiene la primera de las
rotaciones principales.
De esta forma, por cada
punto p = (x1 , x2 , x3 ) dado un ángulo 0, puede ser rotado sobre el
eje X3 en sentido contrario a las manecillas del reloj, obteniendo las
coordenadas del nuevo punto p' = (x1 ',
x2 ', x3 ' ) de la misma forma en cómo se analizó en el espacio 2D, quedando la
coordenada x3 sin cambio, entonces, se extienden las formulas para la rotación
2D a 3D como:
x1 ' = x1 cos 0 − x2
sin 0
x2 ' = x1 sin 0 + x2
cos 0
x3 ' = x3
Ecuación 3.11: Fórmulas para la
rotación 3D alrededor del eje X3.
Sea R3(0) la matriz de
rotación alrededor del eje X3, en coordenadas homogéneas la rotación de un
punto p alrededor de dicho eje, se puede expresar como el producto matricial p'
= p ⋅ R3 (0 ) , es decir:
La Figura 3.8 muestra el
efecto de rotación sobre el eje X3 de una figura con 0 = 20°.
No hay comentarios:
Publicar un comentario