El desafío aquí es representar con precisión la flor de la vida (que según algunos es una figura geométrica sagrada) en el idioma que elija.
El diseño consiste en una disposición de círculos y círculos parciales de radio 1, como se muestra, cuyos centros están dispuestos en una cuadrícula triangular de paso 1, más un círculo más grande de radio 3 que los rodea.
El diseño se puede escalar a su gusto, pero se permite un error máximo del 2% de matemáticamente correcto. Si usa gráficos de trama, esto limita efectivamente el diámetro de los círculos pequeños a al menos aproximadamente 100 píxeles.
Como se trata de código de golf, gana el código más corto (bytes).
code-golf
ascii-art
graphical-output
Benjamin Spector
fuente
fuente
Respuestas:
Mathematica,
177173128124120 bytesLa idea principal es componer el resultado de seis versiones rotadas de esto:
Esto a su vez es una mesa rectangular de arcos circulares idénticos con dos esquinas cortadas. Si eliminamos la cizalladura y representamos cada centro de círculo con a
#
, básicamente queremos distribuir los círculos en este patrón:Estos bordes se cortan imponiendo la condición
-3 < x-y < 4
en los índices 2D (ya que el valor dex-y
es constante a lo largo de las diagonales) y la cizalla proviene de la multiplicación de estosx
yy
de los vectores de base no ortogonales que abarcan la cuadrícula que estamos buscando.Esta orientación particular de los arcos no rotados resulta ser la más corta ya que ambos extremos del arco se dividen de
Pi
manera uniforme para que el arco se pueda expresar comoPi/{6,2}
(todos los demás arcos requerirían un signo menos adicional o números enteros en el numerador).fuente
OpenSCAD, 228 bytes
La siguiente es una versión que permite a alguien establecer los parámetros r (radio) yw (ancho de los anillos).
Esta versión tiene exactamente 246 caracteres.
Parte de este código es técnicamente innecesario, pero hace que se parezca más a la imagen.
fuente
Error: Error: Parse error on line 1: ...x(k))o();circle(9);};}}}q(2);o(27); -----------------------^ Expecting 'TOK_ID', '}', 'TOK_IF', '!', '#', '%', '*', got ';'
Mathematica 263 Bytes
No es realmente competitivo con la presentación de @ MartinEnder, pero de todos modos me divertí con esto. ¡Dejo que los pétalos caminen al azar! El pétalo camina girando 60 grados al azar sobre uno de los puntos finales que también se elige al azar. Pruebo para ver si el extremo giratorio del pétalo cae fuera del disco grande, y si es así, la rotación va en sentido contrario.
Aquí está el código posterior que utilicé para la animación.
Leí en alguna parte que las caminatas aleatorias bidimensionales eventualmente deben volver al origen. Parece que unos pocos miles de pasos garantizan el llenado del disco grande.
fuente
Sqrt[3]
es3^.5
. No necesita definire
hasta su primer uso y puede usar este truco para guardar un byte en él, entoncesv={e=0{,},{0,2}}
. También puede usar alguna notación infijada comoe~c~6
oe~Disk~6
, yArcTan@@Subtract@@v
debería ser equivalente aArcTan@@(#-#2)&@@v
.JavaScript (ES6) / SVG, 299 bytes
Funciona generando múltiples pares de arcos de varias longitudes y luego rotándolos en su lugar.
fuente