頂点の数n ≥ 3
と「ステップサイズ」1 ≤ m < n/2
(2つの接続された頂点間の距離を示す)を指定して、対応する通常のポリグラムのグラフィカル表現を出力します。ポリグラムが複数の閉じたループで構成されている場合、各ループは異なる線色でレンダリングする必要があります。(これが分かりにくいように思える場合は、以下の例で問題を解決してください。)
ルール
問題の合理的な解決策は、これらのルールを自動的に満たす可能性があります-「この黒いブロックは完全にポリグラムですが、あなたはそれを見ることができないので線幅を9000以上に設定しました。」
- ポリグラムをファイル(ディスクまたは標準出力ストリームに書き込まれる場合があります)にレンダリングするか、画面に表示できます。
- ベクターグラフィックまたはラスターグラフィックを使用できます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があり、ポリグラムの半径(中心から各頂点までの距離)は辺の長さの35%〜50%でなければなりません。
- ポリグラムの縦横比は1でなければなりません(そのため、頂点は適切な円上にあります)-画像のキャンバスは長方形になります。
- ポリグラムの線は、半径の5%より太くてはなりません(そしてもちろん、見えるようにゼロ以外の太さでなければなりません)。
- ポリグラムに加えて軸またはフレームをレンダリングできますが、それ以外は何もレンダリングできません。
- 任意の(単色の)背景色を選択できます。
- 複数の閉ループで構成されるポリグラムの場合、少なくとも6つの視覚的に異なる色をサポートする必要があります。これらはすべて背景とは異なる必要があります。(グレースケールは、シェードがスペクトル全体に十分に広がっている場合は問題ありません。)コードは6つ以上のループで機能する必要がありますが、追加のループで色を区別する必要はありません(つまり、再利用することもできます)その時点での以前のループの色)。
これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。
例
以下は、n = 16
(列がに対応しn
、行がに対応する)までのすべての出力m
です。
largeの例として、以下n
が(n, m) = (29, 11)
あり(30, 12)
ます:
アンチエイリアシングなどについてはどうですか?(斜めの線を扱っているため)
—
オプティマイザー
@Optimizerアンチエイリアスアルゴリズムを処方するつもりはありません。線がはっきり見える限り、線はエイリアスまたはアンチエイリアスされます。あなたの最善の判断を使用してください。
—
マーティンエンダー