Gambar sesuatu yang terlihat seperti ini:
Dalam istilah yang lebih tepat, gambarlah lingkaran dengan jari-jari r, dengan n garis-garis singgung panjang yang merata l. Hubungkan ujung garis-garis ini untuk membentuk poligon reguler n-sided baru.
Aturan
r = jari-jari lingkaran
n = jumlah garis singgung - harus ditempatkan secara merata di sekitar lingkaran (n> = 3)
l = panjang sisi garis singgung
Buat program yang menerima argumen {r, n, l} dan menggambar output yang diperlukan.
Unit dalam piksel.
Tidak ada batasan untuk lokasi gambar, asalkan semuanya terlihat.
Gambarnya cukup jelas.
Ini adalah kode-golf, jadi kode terpendek dalam byte menang!
code-golf
graphical-output
Regangkan Maniac
sumber
sumber
Jawaban:
Mathematica,
135132131123 byteKode ini mengharapkan input (melalui prompt) persis seperti yang ditentukan dalam pertanyaan: mis
{100, 6, 150}
. Ini menghasilkan grafik vektor, jadi saya termasuk sumbu, sebagaimana ditentukan dalam komentar oleh OP.Kedua garis singgung dan poligon sebenarnya adalah satu garis garis, dengan melintasi "sudut poligon, titik singgung, sudut poligon, sudut poligon berikutnya, titik singgung, sudut poligon ..."
Jika bukan karena sumbu, saya bahkan bisa melakukan ini dalam 107 byte:
Penghematan tambahan (terlepas dari
Axes->1>0
) berasal dari kenyataan bahwa saya sekarang dapatr
mengubahCircle
skala semuanya dengan , yang menyederhanakan panggilan untuk menghasilkan lingkaran unit.sumber
{0,0}~Circle~r
Python, 133 byte
Satu-satunya jawaban sejauh ini untuk mematuhi aturan "Unit dalam piksel" ...
Tambahkan
exitonclick()
ke akhir jika Anda tidak ingin jendela segera ditutup.Keluaran:
python tangentpoly.py <<< "20, 6, 30"
:python tangentpoly.py <<< "100, 8, 200"
:sumber
for i in n*[0]:c(r,360/n);fd(l);bk(l)
->exec'c(r,360/n);fd(l);bk(l)'*n;
T-SQL
440483Tidak akan memenangkan hadiah dengan yang satu ini, tapi saya suka menggambar gambar :)
Edit sumpah serapah! Hanya memperhatikan saya mengacaukan poligon yang ditarik melintasi lingkaran. Diperbaiki dengan biaya.
Dilaksanakan dengan variabel-variabel berikut
Jalankan di Sql Server Management Studio 2012+ itu akan mengembalikan yang berikut di tab hasil spasial.
Dengan
dengan
Diperluas
sumber
MATLAB - 233 byte
Output fungsi sampel untuk
n = 8, r = 4, l = 6
(sumbu disertakan untuk menunjukkan panjang unit):Output fungsi sampel untuk
n = 1024, r = 4, l = 2
:sumber
HTML + JavaScript (E6) 298
Untuk menguji, simpan sebagai file html dan buka dengan FireFox. Masukkan parameter r, n, l ke dalam kolom input, pisahkan koma, lalu tab out.
Atau coba jsfiddle
Output sampel
sumber