Tulis program atau fungsi yang menggunakan input berikut dalam format pilihan Anda yang masuk akal:
Dua bilangan bulat positif W dan H yang menentukan lebar dan tinggi gambar yang akan Anda hasilkan.
Dua warna RGB C1 dan C2 yang akan digunakan untuk mewarnai gambar.
Daftar 3-tupel formulir
(r, x, y)
yang menentukan lingkaran dengan jari-jarir
dan pusatx, y
di bidang gambar.r
adalah bilangan bulat positif danx
dany
bilangan bulat apa saja. Pixel kiri atas gambar adalah0, 0
dan sumbu x meningkat ke kanan dan sumbu y meningkat ke bawah.
Keluarkan gambar dengan dimensi W oleh H yang diwarnai dengan C1 dan C2 sehingga tidak ada dua daerah tetangga yang ditentukan oleh semua lingkaran yang tumpang tindih dengan warna yang sama.
Misalnya: Jika inputnya adalah
W = 300 H = 200 C1 = (255, 200, 0) C2 = (128, 0, 255) Circles = (25, 50, 80), (40, 80, 120), (300, -100, 6), (17, 253, 162)
maka batas lingkaran terlihat seperti ini:
Ada enam wilayah berbeda yang bersebelahan dalam gambar yang dibuat oleh lingkaran. Setiap daerah harus diwarnai dengan C1 (kuning) atau C2 (ungu) sehingga tidak ada dua daerah tetangga yang warna yang sama.
Ada dua cara untuk melakukan ini, satu-satunya perbedaan adalah bahwa warna ditukar:
Jadi, salah satu dari kedua gambar ini akan menjadi output yang valid untuk input contoh.
Sesuatu seperti ini akan menjadi keluaran yang tidak valid karena dua daerah kuning saling bertetangga.
Gambar output Anda harus mengikuti pedoman ini:
Selain C1 dan C2, warna netral ketiga seperti hitam atau putih dapat digunakan untuk batas lingkaran asalkan ketebalannya tidak lebih dari 5 piksel. (Hitam, batas tebal 1-piksel ada pada contoh di atas.)
Batas lingkaran tidak diperlukan. Daerah-daerah dapat saling bertetangga secara langsung:
Kedua hal ini merupakan keluaran yang valid untuk contoh di atas.
Lingkaran harus seakurat mungkin, menggunakan algoritme menggambar lingkaran atau apa pun yang disediakan perpustakaan grafis Anda.
Secara umum, penyempurnaan piksel tidak diperlukan, tetapi jika parameter input diskalakan lebih besar dan lebih besar, gambar yang dihasilkan harus menjadi lebih dan lebih akurat.
Anti-aliasing diizinkan tetapi tidak diperlukan.
Label garis kisi atau sumbu dll di latar belakang tidak diperbolehkan.
Kode terpendek dalam byte menang.
Lebih banyak contoh
Semua menggunakan input ini dengan rangkaian lingkaran yang berbeda:
W = 100
H = 60
C1 = (255, 0, 0)
C2 = (0, 0, 255)
Dalam contoh apa pun, warna dapat ditukar dan tetap valid.
Circles =
A. empty list
B. (13, 16, 20)
C. (30, 16, 20)
D. (200, 16, 20)
E. (42, 50, 20)
F. (42, 50, 20), (17, 40, 30)
G. (42, 50, 20), (17, 20, 30)
H. (42, 50, 20), (17, 10, 30), (10, 50, 30)
I. (42, 50, 20), (17, 10, 30), (35, 50, 20)
J. (18, 36, 40), (18, 63, 40), (18, 50, 20)
K. (100, -10, -20), (60, 50, -10)
L. (18, 36, 40), (18, 63, 40), (18, 50, 20), (14, 50, 20), (5, 50, 18), (20, 0, 0), (70, 22, 0), (10000, -9970, 0), (135, 100, -80)
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
L.
Pastikan output Anda berperilaku mirip dengan semua contoh ini.
tikz