Espejos cilíndricos y arte anamórfico

Anuncio
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
Descargar