Ein Spirograph ist ein Spielzeug, das Hypotrochoide und Epitrochoide zeichnet. Bei dieser Herausforderung konzentrieren wir uns nur auf die Hypotrochoide.
Aus Wikipedia :
Ein Hypotrochoid ist ein Roulette-Spiel, das von einem Punkt gezeichnet wird, der an einem Kreis mit dem Radius r befestigt ist, der sich um die Innenseite eines festen Kreises mit dem Radius R dreht , wobei der Punkt einen Abstand d vom Mittelpunkt des inneren Kreises entfernt ist.
Die parametrischen Gleichungen für sie können wie folgt definiert werden:
Wobei θ der Winkel ist, der durch die Horizontale und den Mittelpunkt des Rollkreises gebildet wird.
Ihre Aufgabe ist es, ein Programm zu schreiben, das den Pfad zeichnet, der durch den oben definierten Punkt verfolgt wird. Als Eingabe erhalten Sie R , r und d , alle ganzen Zahlen zwischen 1 und 200 einschließlich.
Sie können diese Eingabe von stdin, Argumenten oder Benutzereingaben erhalten, sie kann jedoch nicht fest in das Programm codiert werden. Sie können es in der für Sie am besten geeigneten Form akzeptieren. als Zeichenketten, Ganzzahlen usw.
Annehmen:
- Eingabeeinheiten werden in Pixel angegeben.
- R > = r
Die Ausgabe sollte eine grafische Darstellung des durch die Eingabe definierten Hypotrochoids sein. Es ist keine ASCII- oder andere textbasierte Ausgabe zulässig. Dieses Bild kann in einer Datei gespeichert oder auf dem Bildschirm angezeigt werden. Fügen Sie einen Screenshot oder ein Bild der Ausgabe für eine Eingabe Ihrer Wahl hinzu.
Sie können beliebige Farben für den Pfad / Hintergrund auswählen, vorbehaltlich einer Kontrasteinschränkung. Die beiden Farben müssen mindestens die Hälfte der HSV-Wertkomponente voneinander entfernt haben. Wenn Sie beispielsweise das HSV messen [0...1]
, sollte es zumindest einen 0.5
Unterschied geben. Dazwischen [0...255]
sollte ein Mindestunterschied bestehen 128
.
Dies ist ein Code Golf, Mindestgröße des Quellcodes in Bytes gewinnt.
R>=r
, ist aber d
nicht darauf beschränkt r
und kann irgendwo im Bereich von 1-200 liegen.
R=200, r=1, d=200
. Sie können das Bild an die Eingabe anpassen, wenn Sie möchten, oder es auf einer konstanten Größe halten, solange alles sichtbar ist.
R > r
oderR ≥ r
? (Dasselbe fürr
undd
.)