Espejos cilíndricos y arte anamórfico Autor: José Luis Gómez-Muñoz Idea original: Raúl Gómez-Castillo Basado en codigo escrito por Andrew Moylan Puedes crear tu propio arte anamórfico, a mano o con Mathematica. En este tipo de arte, se pinta una imagen distorsionada, de tal forma que su reflejo en un espejo cilíndrico se ve sin distorsión, como se muestra en las siguientes imágenes: 2 cilindrico.nb cilindrico.nb Usa el comando FileNames["*.jpg"] para ver las imágenes JPG que ya están disponibles en la carpeta (directorio) de la que Mathematica leerá los archivos. Si obtienes una lista vacia, copia una imagen JPG en esa carpeta (usualmente será "Mis Documentos" si la computadora usa Windows). Puedes obtener la imagen de internet, pero procura que no sea muy grande para que los demás comandos de esta práctica no sean muy lentos. Después de haber copiado la imagen vuelve a ejecutar el comando FileNames["*.jpg"] para verificar que quedó en a carpeta adecuada: FileNames@"∗.jpg"D 820080824a.JPG, 20080824b.JPG, ajedrez.JPG, coca.jpg, lenna.JPG, lennaMod.JPG, spikey.JPG, tabla.jpg, universo.JPG, vaticano.JPG< Selecciona una de las imágenes JPG de la lista anterior e impórtala en Mathematica. Los siguientes comandos guardan la imagen en la variable mydata con el formato adecuado para los demás comandos usados en esta práctica. Si tu imagen es muy grande, el siguiente comando puede tardar varios segundos (incluso minutos) en tu computadora: 3 4 cilindrico.nb mydata = Reverse@Import@"spikey.JPG", "Data"D ê 255D; Graphics@Raster@mydataDD Ahora "envuelve" la imagen alrededor de un clilíndro con los siguientes comandos. Si tu imagen es muy grande, el siguiente comando puede tardar varios segundos (incluso minutos) en tu computadora: cilindrico.nb myinterp = Map@Function@w, ListInterpolation@w, 880, 1<, 80, 1<<, InterpolationOrder → 1DD, Transpose@mydata, 82, 3, 1<DD; p1 = RevolutionPlot3D@81, y<, 8y, 0, 4<, PlotPoints → 100, Mesh → None, ColorFunction → HRGBColor @@ Through@myinterp@4, 5DD &LD Ahora "mapea" la imagen en un disco con los siguientes comandos. Si tu imagen es muy grande, el siguiente comando puede tardar varios segundos (incluso minutos) en tu computadora: 5 6 cilindrico.nb p2 = ParametricPlot3D@8 r Cos@tD, r Sin@tD, 0<, 8t, 0, 2 Pi<, 8r, 1, 4<, PlotPoints → 100, Mesh → None, ColorFunction → HRGBColor @@ Through@myinterp@4, 5DD &LD El comando Show permite mostrarlos juntos, para reproducir una imagen parecida a las fotos al principio de este documento (en un experimentos real, el espejo cilíndrico NO se coloca en el centro del disco, se coloca un poco atrás): cilindrico.nb 7 Show@p1, p2, PlotRange → AllD Imprime la siguiente imagen y obtén o frabrica tu propio espejo cilíndrico, ve los ejemplos al final de este documento (el espejo cilíndrico NO se coloca en el centro del disco, se coloca un poco atrás): Show@p2, ViewPoint → 80, 0, 100<, Boxed → False, Axes → FalseD Otra imagen, que fue modificada para que la foto ocupe sólo una fracción del disco: 8 cilindrico.nb mydata = Reverse@Import@"lennaMod.JPG", "Data"D ê 255D; Graphics@Raster@mydataDD Imprime la siguiente imagen y obtén o frabrica tu propio espejo cilíndrico, ve los ejemplos al final de este documento (el espejo cilíndrico NO se coloca en el centro del disco, se coloca un poco atrás): myinterp = Map@Function@w, ListInterpolation@w, 880, 1<, 80, 1<<, InterpolationOrder → 1DD, Transpose@mydata, 82, 3, 1<DD; p2 = ParametricPlot3D@8 r Cos@tD, r Sin@tD, 0<, 8t, 0, 2 Pi<, 8r, 1, 4<, PlotPoints → 100, Mesh → None, ColorFunction → HRGBColor @@ Through@myinterp@4, 5DD &LD; Show@p2, ViewPoint → 80, 0, 100<, Boxed → False, Axes → FalseD cilindrico.nb 9 10 cilindrico.nb Ejemplos varios realizados con Mathematica o a mano o con otros programas cilindrico.nb 11 12 cilindrico.nb cilindrico.nb 13 14 cilindrico.nb cilindrico.nb 15 Referencias http://www.dkimages.com/discover/Home/Science/Physics-and-Chemistry/Sound-andLight/Reflection/Reflection-20.html http://www.physics.uoguelph.ca/morph/morph1.html http://www.erclc.org/StaffPages/David/MathExplorations/FunhouseMirrors.htm http://picasaweb.google.com/madonarri/StreetPainting/photo#5128241700030532578 http://britton.disted.camosun.bc.ca/anamorphic/cylmirror.html Autor: José Luis Gómez-Muñoz Idea original: Raúl Gómez-Castillo Basado en codigo escrito por Andrew Moylan