Spiral geometris ini terlihat rumit, tetapi cukup sederhana untuk menggambar; ambil kotak berikut:
Gambarlah garis lurus antara sudut kotak dan beberapa jarak yang ditetapkan di atas sudut berikutnya berlawanan arah jarum jam.
Lanjutkan pola ini ke dalam, selalu tinggal yang mengatur jarak dari sudut baris berikutnya. Berikut beberapa baris lagi.
Seperti yang Anda lihat, ketika polanya berlanjut, spiral mendekati pusat dan kotak-kotak yang Anda gambar mulai berputar. Perhatikan bahwa jarak tetap konstan, terlepas dari sudutnya.
Tantangan
Inspirasi (dan juga terima kasih kepada orang yang luar biasa yang memperkenalkan saya pada konsep ini <3)
Diberikan input numerik (mungkin fraksional) dari 1 hingga 25, tulis gambar ke disk yang menggunakan pola ini atau tampilkan output di layar, di mana jarak dari setiap sudut adalah jarak satu sisi awal kotak dibagi dengan input . Lanjutkan pola ke dalam sampai jarak dari sudut yang ditentukan lebih panjang dari panjang sisi berikutnya.
Aturan
- Anda mungkin tidak menggunakan built-in untuk pembuatan spiral ini, tetapi Anda dapat menggunakan builtin pemrosesan gambar.
- Jika Anda menulis ke disk, Anda harus menampilkan gambar dalam format .jpg, .gif, .tiff, .pbm, .ppm, dan .png.
- Panjang sisi awal harus minimal 500 piksel.
- Sudut awal mungkin adalah yang Anda pilih.
- Seperti biasa, Celah Standar tidak diizinkan.
sumber
Jawaban:
Sepatu (Ruby) 163 byte
Shoes adalah toolkit GUI berbasis ruby.
Tidak disatukan
Output n = 4 dan n = 25
Perhatikan bahwa bentuk selalu berakhir dengan segitiga, yang runtuh lebih jauh ke garis. Mengganti
size-1
dengansize
tidak ada bedanya dengan penampilan output dan akan menghemat 2 byte, tapi saya meninggalkannya untuk kebenaran teoretis.Output n = 300
Terinspirasi oleh komentar oleh OP, angka yang lebih tinggi memang terlihat hebat!
sumber
line
garis bawah diperlukan?*
mengubah susunan empat elemen yang dibentuk oleh konversi bilangan kompleks menjadi empat parameter untukline
. Sintaks standarnya adalahline(*(a[j-1].rect+a[j].rect))
menghilangkan tanda kurung dan menambahkan spasi sudah menghemat satu byte. Menghapus ruang membuat Ruby mencoba mengalikanline
dengan isi tanda kurung, yang tidak masuk akal dan menyebabkannya membuang kesalahan. Ada beberapa golf yang harus dilakukan di sini, hanya saja tidak. Saya akan memeriksanya nanti.upto
. Juga, sudahkah Anda mencoba menghapus('')
setelahnyaask
? Saya belum mengujinya, tetapi mungkin tidak perluJava,
10561005985948522508507504502501493492488474465458 byteTerima kasih kepada CoolestVeto dan ECS untuk cara lain mengurangi ukuran. :-)
sumber
Groovy,
412411403398 bytesumber
Caught: groovy.lang.MissingMethodException: No signature of method: static s.div() is applicable for argument types: (java.lang.Float) values: [25.0] Possible solutions: is(java.lang.Object), wait(), run(), run(), find(), any() groovy.lang.MissingMethodException: No signature of method: static s.div() is applicable for argument types: (java.lang.Float) values: [25.0] Possible solutions: is(java.lang.Object), wait(), run(), run(), find(), any() at s$1.<init>(s.groovy:3) at s.run(s.groovy:2)