Tantangannya di sini adalah menggambarkan bunga kehidupan secara akurat (yang menurut beberapa tokoh geometri suci) dalam bahasa pilihan Anda.
Desain terdiri dari susunan lingkaran dan lingkaran parsial dari jari-jari 1 seperti yang diperlihatkan pusat-pusatnya tersusun pada kisi segitiga 1, ditambah satu lingkaran lebih besar dari jari-jari 3 yang mengelilinginya.
Desain dapat diskalakan sesuai keinginan Anda, tetapi kesalahan maksimal 2% dari koreksi matematis diizinkan. Jika menggunakan grafik raster, ini secara efektif membatasi diameter lingkaran kecil setidaknya 100 piksel.
Karena ini adalah kode-golf, kode terpendek (byte) menang.
code-golf
ascii-art
graphical-output
Benjamin Spector
sumber
sumber
Jawaban:
Mathematica,
177173128124120 byteGagasan utamanya adalah menyusun hasil dari enam versi yang dirotasi ini:
Ini pada gilirannya adalah tabel persegi panjang dari lingkaran lingkaran identik dengan dua sudut terpotong. Jika kami menghapus geser dan mewakili setiap pusat lingkaran dengan
#
, kami pada dasarnya ingin mendistribusikan lingkaran dalam pola ini:Tepi-tepi ini terpotong dengan memaksakan kondisi
-3 < x-y < 4
pada indeks 2D (karena nilaix-y
konstan diagonal) dan geser berasal dari mengalikan inix
dany
dengan vektor basis non-ortogonal yang menjangkau grid yang kita cari.Orientasi khusus dari busur yang tidak diputar ini ternyata menjadi yang terpendek karena kedua ujung busur membagi secara merata
Pi
sehingga busur dapat dinyatakan sebagaiPi/{6,2}
(semua busur lainnya akan memerlukan dan tambahan tanda minus atau bilangan bulat dalam pembilang).sumber
OpenSCAD, 228 byte
Di bawah ini adalah versi yang memungkinkan seseorang untuk mengatur parameter r (radius) dan w (lebar cincin).
Versi ini benar-benar 246 karakter.
Beberapa kode ini secara teknis tidak perlu tetapi membuatnya lebih mirip gambar.
sumber
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
Tidak benar-benar kompetitif dengan pengajuan @ MartinEnder tapi saya senang dengan ini. Aku membiarkan kelopaknya berjalan secara acak! Kelopak berjalan dengan memutar 60 derajat secara acak tentang salah satu titik akhir yang juga dipilih secara acak. Saya menguji untuk melihat apakah ujung kelopak yang berputar jatuh di luar piringan besar, dan jika demikian, putarannya sebaliknya.
Berikut adalah kode selanjutnya yang saya gunakan untuk animasi.
Saya membaca di suatu tempat bahwa jalan acak 2 dimensi akhirnya harus kembali ke asal. Sepertinya beberapa ribu langkah menjamin pengisian disk besar.
sumber
Sqrt[3]
is3^.5
. Anda tidak perlu mendefinisikane
sampai penggunaan pertama dan Anda dapat menggunakan trik ini untuk menyimpan byte di dalamnya, jadiv={e=0{,},{0,2}}
. Anda juga dapat menggunakan beberapa notasi infiks sepertie~c~6
ataue~Disk~6
, danArcTan@@Subtract@@v
harus setara denganArcTan@@(#-#2)&@@v
.JavaScript (ES6) / SVG, 299 byte
Bekerja dengan menghasilkan beberapa pasangan busur dari berbagai panjang kemudian memutarnya ke tempatnya.
sumber