Zeichnen Sie eine Reihe verbundener Polygone wie das oben gezeigte.
Was das obige Bild jedoch nicht zeigt, ist die Spirale, die durch aufeinanderfolgende Scheitelpunkte gebildet wird:
Die Einschränkung besteht darin, dass nur 1 Spirale markiert ist. Sie sollten alle Spiralen markieren. Dies kann durch Drehen jeder oben gezeigten Spirale erfolgen, so dass an jedem Scheitelpunkt des größten Polygons eine Spirale beginnt.
Die Spiralen sollten alle eine Farbe haben, während der Rest des Bildes eine andere.
Das innerste Polygon sollte vollständig die Farbe der Spirale haben.
Regeln
- Sie erhalten die Argumente {n, s, p, a} in einer Funktion oder einem Programm
- n = Iterationen nach innen (Anzahl der Polygone)
- s = Seiten des (regulären) Polygons (Sie können n> = 3 annehmen)
- p = (der lineare Abstand von einem Scheitelpunkt des Polygons A zu seinem entsprechenden "inneren" Scheitelpunkt gegen den Uhrzeigersinn) / (die Gesamtlänge der Seite von A). Für das Diagramm wäre p also ungefähr 1/3, da jedes innere Polygon auf ungefähr 1/3 des Weges durch diese Seite auf die Seite des größeren Polygons trifft.
- a = der Radius (umschreibend) des äußeren Polygons
Die Grenze eines der Werte von n, s, p oder a basiert auf dem, was ein Mensch als diese Art von Zeichnung wahrnehmen kann. (zB keine schattierten Kreise) sowie gesunder Menschenverstand (s> = 3, n> = 1)
Viel Spaß beim Golfen! Das kürzeste Programm gewinnt.
quelle
p
im Winkel oder im Abstand zwischen zwei Eckpunkten linear?s
rote Spiralen gegen den Uhrzeigersinn ergeben . Was jedoch bleibt, wären schwarze Spiralen ims
Uhrzeigersinn ! StretchManiac, das ist eine gute Frage, aber wir brauchen wirklich ein Beispielbild, um zu sehen, was Sie meinen. Upvoting und Closevoting.Antworten:
Mathematica,
218206 BytesErwartet die Eingabe als Array, wie in der Frage definiert, z
{20, 7, 0.5, 100}
.oder
{20, 5, 0.333, 100}
Diese Bilder verwenden immer noch Rot und Grau aus einer früheren Version, aber die neue Version verwendet Schwarz für die Spiralen gegen den Uhrzeigersinn und Rot für den Rest.
Ich habe eine Achse eingefügt, da sonst der
a
Parameter bei einer Vektorgrafik bedeutungslos ist. Ich habe auchp
als lineare Interpolation in der Position interpretiert , nicht im Winkel.Ungolfed:
quelle