O desafio aqui é representar com precisão a flor da vida (que é uma figura geométrica sagrada de acordo com alguns) no idioma de sua escolha.
O design consiste em um arranjo de círculos e círculos parciais do raio 1, como mostrado, cujos centros estão dispostos em uma grade triangular do passo 1, mais um círculo maior do raio 3 ao redor deles.
O design pode ser dimensionado como você desejar, mas é permitido um erro máximo de 2% em relação matematicamente correto. Se você estiver usando gráficos raster, isso limita efetivamente o diâmetro dos pequenos círculos a pelo menos cerca de 100 pixels.
Como esse é o código-golfe, o código mais curto (bytes) vence.
code-golf
ascii-art
graphical-output
Benjamin Spector
fonte
fonte
Respostas:
Mathematica,
177173128124120 bytesA idéia principal é compor o resultado de seis versões rotacionadas disso:
Esta, por sua vez, é uma mesa retangular de arcos circulares idênticos, com dois cantos cortados. Se removermos a tesoura e representar cada centro do círculo com a
#
, basicamente queremos distribuir os círculos neste padrão:Essas arestas são cortadas impondo a condição
-3 < x-y < 4
nos índices 2D (já que o valor dex-y
é constante ao longo das diagonais) e o cisalhamento vem da multiplicação dessesx
ey
de vetores de base não ortogonais que abrangem a grade que estamos procurando.Essa orientação específica dos arcos não rotacionados acaba sendo a mais curta, já que ambas as extremidades do arco se dividem uniformemente
Pi
para que o arco possa ser expresso comoPi/{6,2}
(todos os outros arcos exigiriam um sinal de menos adicional ou números inteiros no numerador).fonte
OpenSCAD, 228 bytes
A seguir, uma versão que permite que alguém defina os parâmetros r (raio) ew (largura dos anéis).
Esta versão possui exatamente 246 caracteres.
Parte desse código é tecnicamente desnecessário, mas faz com que pareça mais com a imagem.
fonte
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
Não é realmente competitivo com a participação de @ MartinEnder, mas eu me diverti com isso mesmo assim. Eu deixei as pétalas fazerem um passeio aleatório! A pétala caminha girando 60 graus aleatoriamente em torno de um dos pontos finais, que também é escolhido aleatoriamente. Testo para ver se a extremidade rotativa da pétala fica fora do disco grande e, nesse caso, a rotação ocorre na outra direção.
Aqui está o código subsequente que usei para a animação.
Li em algum lugar que passeios aleatórios bidimensionais devem retornar à origem. Parece que alguns milhares de etapas garantem o preenchimento do disco grande.
fonte
Sqrt[3]
is3^.5
. Você não precisa definire
até seu primeiro uso e pode usar esse truque para salvar um byte nelev={e=0{,},{0,2}}
. Você também pode usar alguma notação de infixo comoe~c~6
oue~Disk~6
, eArcTan@@Subtract@@v
deve ser equivalente aArcTan@@(#-#2)&@@v
.JavaScript (ES6) / SVG, 299 bytes
Funciona gerando vários pares de arco de vários comprimentos e girando-os no lugar.
fonte