Ausgehend von der Anzahl der Eckpunkte n ≥ 3
und der "Schrittgröße" 1 ≤ m < n/2
(die den Abstand zwischen zwei verbundenen Eckpunkten angibt) wird eine grafische Darstellung des entsprechenden regulären Polygramms ausgegeben . Wenn das Polygramm aus mehreren geschlossenen Schleifen besteht, muss jede Schleife in einer anderen Linienfarbe gerendert werden. (Wenn dies verwirrend klingt, sollten die folgenden Beispiele hoffentlich Abhilfe schaffen.)
Regeln
Jede vernünftige Lösung des Problems wird diese Regeln wahrscheinlich automatisch erfüllen - sie sind nur dazu da, die Parameter der Ausgabe einzuschränken, um Antworten wie "Dieser schwarze Block ist völlig ein Polygramm, aber Sie können es nicht sehen, weil Ich habe die Linienbreite auf über 9000 eingestellt. "
- Sie können das Polygramm entweder in eine Datei rendern (die auf eine Disc oder in den Standardausgabestream geschrieben werden kann) oder auf dem Bildschirm anzeigen.
- Sie können entweder Vektor- oder Rastergrafiken verwenden. Wenn die Ausgabe gerastert wird, muss das Bild hat Abmessungen von 400x400 Pixeln oder mehr und die Polygram des Radius (der Abstand von der Mitte zu jedem Scheitelpunkt) zwischen 35% und 50% der Seitenlänge sein muss.
- Das Seitenverhältnis des Polygramms muss 1 sein (damit seine Scheitelpunkte auf einem richtigen Kreis liegen) - die Leinwand des Bildes kann rechteckig sein.
- Die Linien des Polygramms dürfen nicht dicker als 5% des Radius sein (und natürlich müssen sie eine Dicke ungleich Null haben, um sichtbar zu sein).
- Sie können Achsen oder einen Rahmen zusätzlich zum Polygramm rendern, aber sonst nichts.
- Sie können eine beliebige (durchgezogene) Hintergrundfarbe auswählen.
- Für Polygramme, die aus mehreren geschlossenen Schleifen bestehen, müssen Sie mindestens 6 visuell unterschiedliche Farben unterstützen, die sich alle vom Hintergrund unterscheiden müssen. (Graustufen sind in Ordnung, vorausgesetzt, die Schattierungen sind im gesamten Spektrum ausreichend verteilt.) Ihr Code muss noch für mehr als 6 Schleifen funktionieren, die Farben müssen jedoch nicht für zusätzliche Schleifen unterscheidbar sein (dh Sie können diese auch wiederverwenden) Farben aus vorherigen Loops an diesem Punkt).
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Beispiele
Hier sind alle Ausgaben bis n = 16
(wo die Spalte entspricht n
und die Zeile bis m
):
Klicken Sie für eine größere Version.
Als Beispiele für größere n
sind hier (n, m) = (29, 11)
und (30, 12)
: