Tantangannya sederhana:
Buat diagram lingkaran berdasarkan sejumlah nilai input.
Input akan berupa daftar angka positif, desimal atau bilangan bulat, dan output akan menjadi diagram lingkaran di mana masing-masing nilai input diwakili oleh warna yang terpisah, dan nilai persentase di luar masing-masing area.
Aturan:
- Warna harus dapat dibedakan secara visual (warna yang tepat adalah opsional)
- Setidaknya akan ada dua, dan maksimum 10 nilai input
- Jari-jari lingkaran harus dalam rentang
[100 300]
piksel- Vektor grafis yang OK asalkan output default memberikan radius
[100, 300]
piksel
- Vektor grafis yang OK asalkan output default memberikan radius
- Nilai persentase harus bilangan bulat
- Tidak ada aturan ketat yang mengatakan di mana nilai persentase akan ditempatkan, tetapi harus mudah dilihat di daerah mana ia berada
- Jarak antara karakter terdekat dan tepi luar lingkaran harus dalam
[5, 40]
piksel rentang - Fon bersifat opsional
- Plot mungkin memiliki garis hitam yang memisahkan masing-masing daerah
- Fungsi yang dibuat untuk membuat diagram lingkaran, misalnya, MATLAB:,
pie
Python:matplotlib.pyplot.pie
dan Mathematica:PieChart
tidak diizinkan - Aturan pembulatan normal (naik jika itu
(1.00, 0.5]
, turun jika itu(0.5, 0.00)
) - Jika nilai persentase slice lebih kecil dari
0.5%
, output0%
. Irisan masih harus dimasukkan dalam plot. - Harap berikan plot untuk pemeriksaan (atau tautan ke juru bahasa). Cukup dengan hanya menampilkan plot dengan 10 nilai input (untuk menghindari jawaban yang sangat panjang)
Contohnya
Silakan gunakan nilai contoh di bawah ini. Anda dapat mengonversi daftar ke format yang sesuai menggunakan pengonversi daftar angka , misalnya yang 27 byte ini oleh jimmy23013 .
x = [0.3, 1.2]
x = [3, 6, 2, 10]
x = [0.4387, 0.3816, 0.7655, 0.7952, 0.1869, 0.4898, 0.4456, 0.6463, 0.7094, 0.7547]
code-golf
graphical-output
Stewie Griffin
sumber
sumber
0.5
ke nol jika itu default. Tetapi0.50001
harus dibulatkan ke 1.Jawaban:
Mathematica,
186183164 byteBisa bermain golf lebih lanjut. Saat ini menghasilkan
Graphics
objek. Kasus uji:sumber
JavaScript (ES6),
311310302298 byteMenyimpan byte dengan bantuan dari @Neil!
Penjelasan
Menulis beberapa SVG ke HTML halaman saat ini. Buat bagan dengan titik tengah
135 x 150
radius100px
dan teks pada radius dari135px
tengah.sumber
with(Math)c=r=>[sin(d=PI*2*(v+p))*r+135,cos(d)*r+150]
.with(Math)var solution = a=>
dll.with
. Saya pikir saya mungkin berada dalam mode ketat ketika saya mencobanya terakhir ...Python + PIL,
365355Hasil untuk daftar contoh terbesar:
sumber
eval(raw_input())
setara dengan Python 2input()
?