Le défi ici est de représenter avec précision la fleur de la vie (qui est selon certains une figure géométrique sacrée) dans la langue de votre choix.
La conception consiste en un arrangement de cercles et de cercles partiels de rayon 1, comme illustré, dont les centres sont disposés sur une grille triangulaire de pas 1, plus un plus grand cercle de rayon 3 qui les entoure.
La conception peut être mise à l'échelle comme vous le souhaitez, mais une erreur maximale de 2% par rapport à mathématiquement correcte est autorisée. Si vous utilisez des graphiques raster, cela limite efficacement le diamètre des petits cercles à au moins environ 100 pixels.
Puisqu'il s'agit de code-golf, le code le plus court (octets) gagne.
code-golf
ascii-art
graphical-output
Benjamin Spector
la source
la source
Réponses:
Mathematica,
177173128124120 120 octetsL'idée principale est de composer le résultat de six versions tournées de ceci:
Ceci est à son tour une table rectangulaire d'arcs de cercle identiques avec deux coins coupés. Si nous supprimons le cisaillement et représentons chaque centre de cercle avec un
#
, nous voulons essentiellement répartir les cercles dans ce modèle:Ces arêtes sont coupées en imposant la condition
-3 < x-y < 4
aux indices 2D (puisque la valeur dex-y
est constante le long des diagonales) et le cisaillement provient de leur multiplicationx
ety
de vecteurs de base non orthogonaux qui couvrent la grille que nous recherchons.Cette orientation particulière des arcs non tournés se révèle être la plus courte car les deux extrémités de l'arc se divisent uniformément de
Pi
sorte que l'arc peut être exprimé commePi/{6,2}
(tous les autres arcs nécessiteraient soit un signe moins supplémentaire soit des nombres entiers dans le numérateur).la source
OpenSCAD, 228 octets
Ce qui suit est une version permettant à quelqu'un de définir les paramètres r (rayon) et w (largeur des anneaux).
Cette version contient xactly 246 caractères.
Une partie de ce code est techniquement inutile mais le fait ressembler davantage à l'image.
la source
Error: Error: Parse error on line 1: ...x(k))o();circle(9);};}}}q(2);o(27); -----------------------^ Expecting 'TOK_ID', '}', 'TOK_IF', '!', '#', '%', '*', got ';'
Mathematica 263 octets
Pas vraiment compétitif avec la soumission de @ MartinEnder mais je me suis quand même amusé avec ça. Je laisse les pétales marcher au hasard! Le pétale marche en tournant de 60 degrés au hasard autour de l'un des points d'extrémité qui est également choisi au hasard. Je teste pour voir si l'extrémité rotative du pétale tombe à l'extérieur du grand disque, et si c'est le cas, la rotation va dans l'autre sens.
Voici le code suivant que j'ai utilisé pour l'animation.
J'ai lu quelque part que les promenades aléatoires en 2 dimensions doivent finalement revenir à l'origine. Il semble que quelques milliers d'étapes garantissent le remplissage du grand disque.
la source
Sqrt[3]
is3^.5
. Vous n'avez pas besoin de définire
jusqu'à sa première utilisation et vous pouvez utiliser cette astuce pour enregistrer un octet dessus, doncv={e=0{,},{0,2}}
. Vous pouvez également utiliser une notation infixe commee~c~6
oue~Disk~6
, etArcTan@@Subtract@@v
devrait être équivalent àArcTan@@(#-#2)&@@v
.JavaScript (ES6) / SVG, 299 octets
Fonctionne en générant plusieurs paires d'arc de différentes longueurs puis en les faisant pivoter en place.
la source