スピログラフは、下垂体と外epi体を描くおもちゃです。この課題のために、私たちはただ単にトロポコイドに焦点を合わせます。
ウィキペディアから:
ヒポトロコイドは、半径Rの固定円の内側を転がる半径rの円に取り付けられた点によってトレースされるルーレットであり、その点は内部円の中心からの距離dです。
それらのパラメトリック方程式は次のように定義できます。
ここで、θは水平とローリングサークルの中心によって形成される角度です。
あなたの仕事は、上記で定義されたポイントによってトレースされたパスを描くプログラムを書くことです。入力として、R、r、およびdが与えられます。これらはすべて1〜200の整数です。
この入力は、stdin、引数、またはユーザー入力から受け取ることができますが、プログラムにハードコーディングすることはできません。あなたにとって最も都合の良い形式でそれを受け入れることができます。文字列、整数などとして
仮定:
- 入力単位はピクセルで指定されます。
- R > = r
出力は、入力によって定義された次トロコイドのグラフィック表現である必要があります。ASCIIまたはその他のテキストベースの出力は許可されていません。この画像はファイルに保存するか、画面に表示できます。選択した入力の出力のスクリーンショットまたは画像を含めます。
コントラストの制限に従って、パス/背景に好きな色を選択できます。2つの色には、少なくともスケールの半分離れたHSV「値」コンポーネントが必要です。たとえば、からHSVを測定している場合、[0...1]
少なくとも0.5
違いがあるはずです。間[0...255]
に最小の128
差があるはずです。
これはコードゴルフで、ソースコードの最小サイズがバイト単位で勝ちます。
R>=r
、ただしにd
制限されていませんr
範囲内であればどこでもかまい。
R=200, r=1, d=200
。必要に応じて、入力に合わせて画像のサイズを変更したり、すべてが見える限り一定のサイズに維持したりできます。
R > r
または仮定することができますかR ≥ r
?(同じもののためr
とd
。)