rotar-imagen-algoritmo

rotar-imagen-algoritmo

Software

Las sorprendentes matemáticas detrás de la rotación de una imagen

Te mostramos cómo se rotan las imágenes, pues aunque parezca sencillo, funciona mediante un algoritmo que podemos recrear mediante cálculos matemáticos.

8 abril, 2017 19:05

Noticias relacionadas

Explicación (en vídeo) de la ciencia que hay detrás cuando rotamos una imagen con algún programa de edición del imágenes.

Puede que quizás te parezca fácil rotar una simple imagen, pero lo cierto es que hay bastante matemáticas detrás (o al menos para alguien que no entienda mucho de números). Y por esto, niños, es importante estudiar matemáticas. Igual que esta acción tan sencilla, que al menos en mi caso, realizo bastantes veces al día si tener en cuenta todo lo que hay detrás, hay muchas otras que sin las matemáticas no serían posible.

Las matemáticas, en este caso, pueden explicarnos cómo se rotan las imágenes. Los cálculos detrás de la acción de rotar una imagen realmente son bastante básicos. Incluso un estudiante de bachillerato sabría hacerlo holgadamente. Y es que al fin y al cabo se trata de saberse al dedillo el teorema de Pitágoras y algo de álgebra lineal.

El teorema de Pitágoras, la clave

Ha sido IronMortality el usuario que se ha encargado de subir a YouTube un vídeo con la explicación (muy pobre, eso sí, pues no ha hecho hincapié en la procedencia de esos cálculos) de cómo se podría rotar una imagen en Paint con un angulo menor (o mayor) de 90 grados, que es la única rotación que permite realizar el programa. Lo cierto es que el método que ha usado este usuario es exactamente el algoritmo que usan los programas de edición de imágenes desde hace muchos años.

Lo primero, torcer la horizontal 30º

rotar-eje-coordinadas-30-grados

rotar-eje-coordinadas-30-grados

El primer paso será girar el eje de ordenadas (horizontal). Ojo, no es girar la imagen 30º, pues si no habríamos descubierto ya el misterio, sino el eje. Ilustramos con un ejemplo. Para ello, en Paint, tendremos que hacer click derecho sobre la imagen. Se abrirá un menú contextual y tendremos que pulsar Cambiar tamaño.

rotar-eje-coordinadas-30-grados-imagen

rotar-eje-coordinadas-30-grados-imagen

Tened en cuenta que deberéis tener el modo Seleccionar y no el modo Pincel (como se ve e la imagen superior). Una vez se haya abierto la ventana flotante, introducís el valor “30” en el tercer campo (el campo se llamao Horizontal). Verás como el eje de ordenadas se desplaza como en el dibujo superior.

Modificamos la altura

rotar-imagen-paint-paso-2

rotar-imagen-paint-paso-2

¿Pero qué altura escoger? La nueva medida será calculada mediante esta fórmula: “1/cos²(x)”, siendo “x”, por supuesto, el ángulo que hayamos escogido (en esta caso, es “30”). El resultado, si lo hacemos mediante la calculadora, es de “1,3_”. Para introducirlo en el Paint, hacemos click derecho nuevamente sobre la imagen y en el menú contextual elegimos la opción Cambiar tamaño. Introducimos el valor (concretamente “133”, pues debemos colocarlo en porcentajes) en el segundo campo (debería corresponder con Vertical).

Rotamos la vertical 30 grados

rotar-imagen-paint-paso-3

rotar-imagen-paint-paso-3

Por último, realizamos el mismo paso que en la primera ocasión, pero esta vez no en el eje de ordenadas, sino en el de abscisas. Es decir, hacemos click derecho sobre la imagen, seleccionamos Cambiar tamaño y tipeamos “30” en el cuarto campo, que es el que pone Vertical.

Reescalamos la imagen

rotar-imagen-paint-paso-4

rotar-imagen-paint-paso-4

Por último, falta re-escalar la imagen a su estado original, pues aunque haya sido poco, hemos modificado las medidas, tanto de la altura como del ancho. Lo que hay que hacer es introducir el resultado de “cos(x)” en porcentaje en los dos primeros campos, los que corresponden con la altura y el ancho. Concretamente el coseno de 30 grados es “0,866”, así que deberemos introducir 87% en las dos entradas de texto.

Por cierto, no eres al único al que le parece que girado 30 grados la cara parece más contenta, yo también lo he pensado.