Buenas tardes,
Su objetivo es, en la menor cantidad de bytes de código fuente, recrear cualquiera de las pinturas de 'Composición' de Piet Mondrian (por ejemplo, Composición # 10 ).
La recreación puede usar los colores reales o reemplazarlos con los colores apropiados de la Paleta de 16 colores predeterminada de Windows.
Su recreación se puede generar en PNG, BMP o NetPBM, ya sea en un archivo o en STDOUT, o directamente en la pantalla.
Su recreación debe ser una resolución de 512x512 o superior.
Su recreación no debe acceder a internet. Si su programa requiere archivos de datos, entonces su tamaño se agregará al tamaño de su fuente.
Su puntaje será el tamaño de su archivo fuente en bytes.
Indique con su entrada qué pintura está recreando y proporcione un enlace al original y una imagen de su recreación.
Buena suerte.
fuente
Respuestas:
Tikz, 175 bytes
Composición III en blanco y negro , 175 bytes
Verifíquelo en la Blogosfera
Esta es quizás una de las obras más minimalistas de Mondrian y me sorprende que nadie la haya encontrado todavía. Sin embargo, no es particularmente interesante, así que he incluido varias otras pinturas en mi respuesta.
Explicación
Hay un poco de envoltorio asociado con cada respuesta tikz. El contenedor es:
Una vez que pase el contenedor, hay algunas
\def
declaraciones que guardan bytes pero desafortunadamente ofuscan el código:Si hacemos todas las sustituciones adecuadas, nuestro código se verá así:
El primer bit es un
\clip
y es muy importante, pero por el momento lo pasaremos por alto.Ahora dibujamos la primera línea en el lienzo en blanco. Esta línea es bastante gruesa, por lo que usamos
[line width=2mm]
para configurar el grosor en2mm
:Esto conecta un par de nodos y produce esta forma:
A continuación tenemos
\draw
un segundo trazo, sin embargo, este trazo es más delgado, por lo que debemos establecer el grosor de la línea en1mm
:Ahora nuestra pintura se ve así:
Esto está cerca del original pero no del todo, así que aquí es donde
\clip
entra en juego. Usamos el\clip
para eliminar todas las líneas adicionales de nuestro lienzo y establecer el lienzo en el tamaño correcto. Con el lienzo redimensionado obtenemos la imagen:Composición con parche amarillo , 214 bytes
Evaluarlo en CyberSpace
Explicación por venir
Composición II en azul y amarillo , 225 bytes
¡Evalúelo a través de Webbernetz!
Explicación por venir
Composición B (No. 2) en rojo , 232 bytes
¡Intenta hacerlo en Internet!
Explicación
Primero, aquí está el código con saltos de línea insertados para hacerlo más legible:
El primer comando de interés es
Esto dibuja un rectángulo rojo con un contorno negro. Para la esquina superior izquierda de la pintura.
Luego dibujamos dos rectángulos más con interiores blancos y contornos negros para crear el patrón de cuadrícula en la pintura
Luego dibujamos una línea delgada
Y recorta la imagen al tamaño adecuado
Composición II en rojo, azul y amarillo , 251 bytes
¡Pruébelo en la World Wide Web!
Explicación
Primero insertaré algunos saltos de línea para que mi código sea legible
La primera línea de importancia es:
Esto dibuja la siguiente forma:
Esta extraña forma es el rectángulo amarillo en la esquina inferior derecha y las dos líneas que no son el borde de un rectángulo de color. A continuación, insertamos el cuadrado rojo y cubrimos las líneas adicionales hechas por la última forma:
Esto sale como:
Ahora insertamos nuestro cuadrado azul:
Ahora todo lo que queda es recortar todas las partes innecesarias de la imagen usando un
\clip
Composición II , 308 bytes.
Compruébalo en la autopista de información
Explicación por venir
fuente
Mathematica
202287 bytes.¡Solo por diversión! 330 bytes: Mondrian con "Boogie Woogie" en su título
Envío real [287 bytes]
\[SpanFromLeft]
y expresiones similares ocupan aproximadamente 85 bytes. En matemática, cada expresión tiene su símbolo de un carácter dedicado.Salida a la izquierda; foto de Piet Mondrian, composición rojo azul amarillo a la derecha.
fuente
Ruby, 112 (111) personajes
Piet Mondrian - composición en B (No. II) con rojo
mi producción a la izquierda, la referencia ampliada a la derecha.
Los colores se pueden ajustar ligeramente, hasta una precisión de 1/9, sin pérdida de puntaje ajustando el valor máximo en PPM. Elegí el enfoque de "color Win16 adecuado". El blanco 8/9 probablemente esté más cerca del color original del lienzo, pero el 9/9 está más cerca de la intención del autor.
Se puede guardar un personaje si lo reemplazamos"1 0 0 "
con(w+b+b)
(# F00 rojo). Creo que eso cuenta como "lo suficientemente cerca"Versión de salida de archivo (no golfizada)
fuente
"0 "
->b
w="2 "
aw="2 "*9
yb
también.ppm
archivo y ábralo en un editor de imágenesSmileBASIC,
27741892 bytesBroadway Boogie Woogie
Cada una de las "líneas" en la imagen se almacena en este formato:
Todos los números se almacenan como
CHR$(number+32)
, los colores se almacenan como un carácter;w
,y
,r
, Ob
, y la dirección se almacena como|
o-
Los rectángulos adicionales solo se almacenan como:
Del mismo modo.
fuente
SVG - 455
480- Composición Mondrian II en rojo, azul y amarilloSi puede incrustar Javascript en SVG y hacerlo dinámico, es un lenguaje de programación. Ergo, este es un programa. Resulta que si falta un
x
oy
coord en SVG, su valor predeterminado es 0. ¡Tambiénred
es más corto que#f00
!Bastante impreso:
fuente
SmileBASIC, 67 bytes
Elegí una fácil: Composición III en blanco y negro
Afortunadamente, la página de gráficos de SB tiene exactamente 512x512 píxeles, pero no cabe en la pantalla de 400x240, por lo que no puedo obtener una captura de pantalla fácilmente.
Explicado:
fuente
Procesamiento,
15,44715,44115,439 bytesFuerza bruta, y no he logrado encontrar una manera de eliminar la función de dibujar.
Es un error en el motor de procesamiento principal, creo que porque es demasiado grande como un b64. Puedes probarlo aquí .
Sin embargo, los violines JS lo recortan a 100 * 100px. Mi base64 funciona, pero el entorno en línea no. :(
fuente
PImage x=loadImage(i);
lugardata:;base64
funciona igual de bienLove2D, 4956 + 395 + 1 = 5351 bytes
El archivo de datos se almacena AQUÍ
Salida:
Original:
Explicación
El codificador.
Este es solo el script que utilicé para codificar la imagen. Gif funcionó más comprimido, pero no me desafiaron a mostrar un gif.
Sobre todo compitiendo por la recompensa. Probablemente haya mejores formas de hacerlo, pero pensé que sería interesante intentar usar una paleta simple y ejecutar la decodificación de longitud.
EDITAR: la imagen de entrada se simplificó, un poco menos precisa, pero una magnitud menos bytes.
fuente