Aşağıdaki girişi alan bir programı veya işlevi, istediğiniz makul bir biçimde yazın:
Üreteceğiniz görüntünün genişliğini ve yüksekliğini tanımlayan iki pozitif tam sayı W ve H.
Görüntüyü renklendirmek için kullanılacak iki RGB renk C1 ve C2.
Görüntünün düzleminde
(r, x, y)
yarıçapır
ve ortasıx, y
olan daireleri tanımlayan formun 3 tuplesinin bir listesi .r
pozitif bir tamsayı ve birx
vey
herhangi tamsayı. Resmin sol üst pikseli0, 0
ve x ekseni sağa doğru, y ekseni aşağı doğru artar.
Örtüşen dairelerin tanımladığı iki komşu bölge aynı renk olmayacak şekilde C1 ve C2 ile renkli olan ve H boyutlarında bir görüntü çıktı .
Örneğin: Giriş ise
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)
o zaman daire sınırları şöyle görünür:
Çevrelerin yarattığı görüntüde altı ayrı, bitişik bölge var. Her bölge, iki komşu bölgenin aynı renkte olmayacağı şekilde C1 (sarı) veya C2 (mor) ile renklendirilmelidir.
Bunu yapmanın iki yolu vardır, tek farkı renklerin değişmesidir:
Böylece, bu iki görüntünün herhangi biri örnek girdi için geçerli çıktı olacaktır.
Böyle bir şey bu birbirini iki sarı bölgeler komşu beri geçersiz çıktı olurdu.
Çıktı resimleriniz şu yönergelere uymalıdır:
C1 ve C2’nin yanı sıra, siyah ve beyaz gibi üçüncü bir nötr renk, 5 piksel kalınlıktan daha uzun olmadığı sürece daire sınırları için kullanılabilir. (Yukarıdaki örnekte siyah, 1 piksel kalınlığında sınırlar vardır.)
Bununla birlikte, daire sınırları gerekli değildir. Bölgeler doğrudan birbirine komşu olabilir:
Bunların her ikisi de yukarıdaki örneğe uygulanan başka bir geçerli çıktıdır.
Daireler, daire çizme algoritmaları veya grafik kitaplığınız ne sağlarsa onu kullanarak olabildiğince doğru olmalıdır .
Genel olarak, piksel mükemmelliği gerekli değildir, ancak giriş parametreleri eşit ölçüde daha büyük ve daha büyükse, elde edilen görüntü giderek daha doğru hale gelmelidir.
Kenar yumuşatma izin verilir, ancak gerekli değildir.
Arka planda kılavuz çizgileri veya eksen etiketleri vb. Yasaktır.
Bayt cinsinden en kısa kod kazanır.
Daha fazla örnek
Tüm bu girişleri farklı dairelerle birlikte kullanarak:
W = 100
H = 60
C1 = (255, 0, 0)
C2 = (0, 0, 255)
Herhangi bir örnekte, renkler değiştirilebilir ve geçerli kalabilir.
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.
Çıktınızın tüm bu örneklere benzer şekilde davrandığından emin olun.
tikz