Diberikan bilangan bulat N> = 2, menghasilkan gambar yang menunjukkan simpul Sierpiński derajat N.
Sebagai contoh, berikut adalah simpul tingkat 2, 3, 4 dan 5:
Klik pada gambar untuk melihat ukuran penuh (semakin tinggi tingkat semakin besar gambar).
Spesifikasi
- Simpul Sierpiński derajat N diambil dengan menggunakan simpul segitiga Sierpi Sierski derajat N sebagai titik panduan. Segitiga Sierpiński derajat N adalah tiga segitiga Sierpiński derajat N-1 yang disusun menjadi segitiga yang lebih besar. Segitiga Sierpiński derajat 0 adalah segitiga sama sisi.
- Segitiga komponen terkecil memiliki panjang sisi 64, memberikan segitiga Sierpiński di mana simpul didasarkan pada panjang sisi keseluruhan
- Pusat segitiga luar diposisikan di tengah gambar. Ini tidak memberikan ruang putih yang sama di atas dan bawah.
- Outputnya adalah gambar persegi panjang sisi mana adalah
ceiling(x)
, integer lebih besar terkecil dari atau sama dengan x. Ini hanya cukup besar untuk puncak atas segitiga Sierpiński yang mendasari untuk terkandung dalam gambar ketika pusat segitiga berada di tengah-tengah gambar. - Kurva tunggal harus melewati dan di bawah dirinya sendiri, secara bergantian. Solusi dapat memilih di bawah di bawah lalu di atas, atau di atas di bawah.
- Contoh gambar menunjukkan latar depan hitam dan latar belakang putih. Anda dapat memilih dua warna yang mudah dibedakan. Anti-aliasing diizinkan tetapi tidak perlu.
- Tidak boleh ada celah di mana dua busur bertemu atau di mana kurva melewati atau di bawah itu sendiri.
- Output dapat berupa file gambar format raster, atau file gambar format vektor apa pun yang menyertakan ukuran tampilan standar yang benar. Jika Anda menampilkan langsung ke layar, ini harus dalam bentuk yang memungkinkan gulir untuk melihat gambar penuh ketika lebih besar dari layar.
Menentukan pusat busur, jari-jari dan ketebalan
- Simpul dibangun sebagai serangkaian busur melingkar yang bertemu pada titik-titik di mana garis singgung mereka sejajar, untuk memberikan sambungan yang mulus. Busur ini ditampilkan sebagai sektor berbentuk lingkaran (busur dengan ketebalan).
- Pusat-pusat busur ini adalah simpul dari segitiga terbalik terkecil. Setiap simpul tersebut adalah pusat tepat satu busur.
- Setiap busur memiliki jari-jari
- Pengecualian adalah bahwa busur dalam tiga segitiga terluar (di sudut-sudut segitiga besar) memiliki pusat yang merupakan titik tengah dari dua simpul dalam yang berdekatan, dan dengan demikian memiliki jari-jari
- Setiap busur diwakili dengan ketebalan total (perbedaan antara jari-jari dalam dan jari-jari luar) dari dan batas hitam ini masing-masing memiliki ketebalan Kurva harus memiliki batas-batas ini, dan bukan hanya menjadi strip padat.
Satuan ukuran
- Semua jarak dalam piksel (1 adalah jarak horizontal atau vertikal antara 2 piksel yang berdekatan).
- Akar kuadrat dari 3 harus akurat hingga 7 angka signifikan. Artinya, perhitungan Anda harus setara dengan menggunakan ROOT3 sedemikian rupa
1.7320505 <= ROOT3 < 1.7320515
Mencetak gol
Kode terpendek dalam byte menang.
Bagi mereka yang bertanya-tanya, N = 0 dan N = 1 tidak termasuk karena mereka sesuai dengan lingkaran dan trefoil, yang tidak cocok dengan pola yang berlaku untuk N> = 2. Saya berharap bahwa sebagian besar pendekatan untuk tantangan ini perlu menambahkan kode kasus khusus untuk 0 dan 1, jadi saya memutuskan untuk menghilangkannya.
stroke-width:3.464102
dan mirip sedikit berlebihan jika idenya adalah mendapatkan akurasi 1 pixel. Saya akan teruskan dan memasukkannya seperti itu, jika itu yang berkuasa.