次の入力を適切な形式で選択するプログラムまたは関数を作成します。
生成する画像の幅と高さを定義する2つの正の整数WとH。
画像の色付けに使用される2つのRGBカラーC1およびC2。
画像の平面内で
(r, x, y)
半径r
と中心x, y
を持つ円を定義するフォームの3タプルのリスト。r
は正の整数であり、x
およびy
は任意の整数です。画像の左上のピクセルは0, 0
x軸が右に増加し、y軸が下に増加します。
重複するすべての円によって定義される2つの隣接領域が同じ色にならないように、 C1およびC2で色付けされた寸法W x Hの画像を出力します。
例:入力が
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)
円の境界は次のようになります。
円によって作成された画像には、6つの異なる連続した領域があります。各領域は、隣接する2つの領域が同じ色にならないように、C1(黄色)またはC2(紫色)で色付けする必要があります。
これを行うには2つの方法がありますが、唯一の違いは色を交換することです。
したがって、これら2つの画像のいずれかは、入力例の有効な出力になります。
出力画像は次のガイドラインに従う必要があります。
C1とC2に加えて、黒または白などの3番目の中間色は、5ピクセル以下の厚さであれば円の境界に使用できます。(上記の例では、黒の1ピクセルの太い境界が存在します。)
ただし、円の境界は必要ありません。領域は互いに直接隣接する場合があります。
これらは両方とも、上記の例に対する別の有効な出力です。
円は、円描画アルゴリズムまたはグラフィックライブラリが提供するものを使用して、合理的に可能な限り正確でなければなりません。
一般に、ピクセルの完全性は必要ありませんが、入力パラメーターが等しく大きく拡大されると、結果の画像はますます正確になるはずです。
アンチエイリアスは許可されていますが、必須ではありません。
背景のグリッド線または軸ラベルなどは許可されません。
バイト単位の最短コードが優先されます。
その他の例
これらはすべて、異なる円のセットでこれらの入力を使用しています。
W = 100
H = 60
C1 = (255, 0, 0)
C2 = (0, 0, 255)
いずれの例でも、色を入れ替えても有効のままにすることができます。
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.
出力がこれらすべての例と同様に動作することを確認してください。
tikz