Entrada destacada

Distancia media de dos puntos en un cuadrado unitario

martes, 17 de abril de 2018

Transformaciones Afines



Una Transformación Afín es una transformación lineal seguida de una traslación, en términos de álgebra lineal la escribimos A X + B, donde X es el vector que se transforma, A la matriz que identifica la transformación lineal y B es la traslación. En el plano la podemos ver como:


equivalentemente


por tanto, tenemos un campo vectorial lineal sobre el plano

 F (x, y) = ( a x + b y + c, d x + e y + f )

Dada una figura en el plano al aplicarle a todos sus puntos la función F obtenemos otra figura en el plano que corresponde a la imagen afín de la primera mediante F.

En el siguiente aplicativo vemos como es transformado el cuadrado unidad, de vértices (0,0), (1,0), (1,1) y (0,1), pudiendo manipular los valores a, b, c, d, e y f.

Los cambios que cada parámetro produce son:
a: aumenta o reduce horizontalmente
e: aumenta o reduce verticalmente
b: traslada el lado horizontal, que no tiene al origen, de forma horizontal
d: traslada el lado vertical, que no tiene al origen, de forma vertical
c: traslada la figura horizontalmente
f: traslada la figura verticalmente.

Una combinación de estos movimientos interesante, se tiene cuando:



que produce una rotación un ángulo θ en el sentido contrario a las manecillas del reloj. Para el presente aplicativo se debe primero realizar la rotación del a figura y luego sí modificar los parámetros, ahora lo que queda es la invitación a experimentar:

Clear[a, b, c, d, e, f, x, y]
cuadrado = {{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}};
Grid[{{Manipulate[theta = θ; 
    pol := Polygon[
      Transpose[{{a, b}, {d, e}}.Transpose[cuadrado] + {c, f}]]; 
    Graphics[{{Red, Line[cuadrado]}, pol}, 
     PlotLabel -> "Area del poligono = " <> ToString[Area[pol]], 
     Axes -> True, 
     PlotRange -> {{-zoom + 1, zoom}, {-zoom + 1, zoom}}], {{zoom, 2, 
      "Zoom de la figura"}, 2, 1.2, ControlPlacement -> Top}, 
    Style["Movimientos Lineales", 
     "Text"], {{a, Cos[θ Degree]}, -2, 2, 
     Appearance -> "Open"}, {{b, -Sin[θ Degree]}, -2, 2, 
     Appearance -> "Open"}, {{d, Sin[θ Degree]}, -2, 2, 
     Appearance -> "Open"}, {{e, Cos[θ Degree]}, -2, 2, 
     Appearance -> "Open"}, 
    Style["Rotación", "Text", Small], {{θ, 0}, 0, 359.9, 
     Appearance -> "Labeled"}, 
    Style["Traslaciones", "Text"], {{c, 0}, -2, 2, 
     Appearance -> "Open"}, {{f, 0}, -2, 2, Appearance -> "Open"}, 
    ControlPlacement -> Left], MatrixForm[{{x'}, {y'}}], "=", 
   MatrixForm[{{a, b}, {d, e}}], MatrixForm[{{x}, {y}}], "+", 
   MatrixForm[{{c}, {f}}]}}]





Para aprender más sobre Mathematica ingrese aquí sitio de aprendizaje de Wolfram o en mi website ustamathematica.wixsite.com/basicas


No hay comentarios.:

Publicar un comentario