Das Polar ist ursprünglich entstanden, um ein neues Element für SVG vorzuschlagen, ich denke, das Skript hat aber auch so einen hohen Unterhaltungswert - wäre es natürlich, es wirklich als PHP-Element verfügbar zu haben. Weiter unten ist genauer definiert, wie die verschiedenen verfügbaren Parameter definiert sind.
Nur Zahlen ohne Einheiten sind erlaubt, Listenpunkte müssen exakt mit ',' separiert werden, beides nur für das PHP-Skript. Generell gibt es keine perfekte Kontrolle von unsinnigen Werten, selber aufpassen!
Es beschreibt ein graphisches Element oder eine Symmetriegruppe in Polarkoordinaten, im folgenden das Polar genannt. Einfachste sinnvolle Anwendung ist ein gleichmäßiges Polygon oder allgemein, um zweidimensionale diskrete Rotationsgruppen zu erforschen. Eine andere Anwendung ist das Erzeugen eines Loches in einem gleichmäßiges Polygon. Durch die Wahl der der Semantik der Attribute und der Interpretation nicht angegebener Attribute, ist es möglich, einfache Objekte nur mit wenigen Attributen oder Punkten in einem Attributwert. Kompliziertere Objekte können definiert werden, wenn der komplette Satz von Attributen und Semantik von Attributwerten von fortgeschrittenen Autoren ausgeschöpft wird.
cx
= "<Koordinate>"
Die x-Achsenkoordinate des Zentrums des polar.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '0' angegeben.
cy
= "<Koordinate>"
Die y-Achsenkoordinate des Zentrums des polar.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '0' angegeben.
n
= "<ganze Zahl>"
Die Zahl der Eckens des polar. Bei einem negativen oder null n wird das polar
nicht angezeigt.
Für n="1" kann das polar zu einem Punkt degeneriert sein,
für n="2" kann das polar zu einer Linie degeneriert sein, falls
keine nicht trivialen Werte für andere Attribute angegeben werden.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '3' angegeben.
Falls versehentlich keine ganze Zahl angegeben ist, wird ceil(n) als Wert verwendet, also
aufgerundet.
turns
= "<Zahl>"
Die Zahl der Runden, um die Ecken anzuordnen.
Für Details siehe Beschreibung unten.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '1' angegeben.
Man beachte, daß für turns="0" das polar zu einer Linie oder einem Punkt degeneriert.
Das Vorzeichen bestimmt die Richtung des Fortschrittes von einer Ecke zur nächsten.
offset
= "<Zahl>"
Winkelversatz zur Darstellung.
Der Drehversatz relativ zur x-Achse es aktuellen Nutzerkoordinatensystems für die Punkte.
Eine Einheit einer Zahl entspricht einer Drehung um 360/n Grad.
Für Details siehe Beschreibung unten.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '0' angegeben.
z
= 0|1 or <ganze Zahl>?
Pfad geschlossen oder nicht. 0 nicht geschlossen, sonst geschlossen.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '1' angegeben.
(Falls etwas anderes als 0 oder 1 spezifiziert ist, wird 1 für die 0|1 Variante; aktuell ist
die andere Variante implementiert, siehe unten.)
Diskussion: Die Funktionalität von z kann erweitert werden auf die Zahl separierter Fragmente (M/m Kommandos), geschlossen oder offen (z positiv oder negativ). Die Implementierung ist aktuell nicht komplett gestestet und nicht weiter im Text auf dieser Seite erklärt. Falls n kein Vielfaches von Betrag von z > 0 ist, werden aktuell die letzten Werte wiederholt, um die Liste aufzufüllen.
r
= "<Liste von Zahlen>"
Liste von Radien für die entsprechenden Ecken des polar. Radien können
positiv, negativ oder null sein.
Falls die Zahl der Listenpunkte größer als n ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als n ist, werden die letzten überflüssigen
Listenpunkte wiederholt.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '0' angegeben.
r1
= "<Liste von Zahlen>"
r2
= "<Liste von Zahlen>"
Liste von Radien für die entsprechenden Kontrollpunkten des polar. Radien können
positiv, negativ oder null sein.
Falls die Zahl der Listenpunkte größer als n ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als n ist, werden die
Listenpunkte wiederholt.
Falls das Attribut nicht angegeben ist, wird die gleiche Radienliste wie für das
Attribut r angenommen.
Animierbar: Ja, nicht additiv oder gleichmäßig (paced). Falls die Zahl der Listenpunkte innerhalb der Animation variiert wird, wird die Regel zur Ignorierung und Wiederholung von Listenpunkten auf jeden einzelnen Animationswert angewendet.
dr
= "<Liste von Zahlen>"
Liste von Punkt-zu-Punkt-Deltas für den Radius, erstens für Punkte, zweitens
und drittens für Kontrollpunkte. Für Details siehe unten.
Falls die Zahl der Listenpunkte größer als 3 ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als 3 ist, werden die
unspezifizierten Zahlen als 0 angenommen.
Das Attribut kann hilfreich sein, um (diskrete) spiralartive Strukturen zu definieren.
fractions
= "<Liste von Zahlen>"
Liste von anteiligen Rundenabweichungen für die entsprechenden Ecken des polar.
Der Anteil wird relativ zur Winkelposition des Eckpunktes eines regulären Polygons
genommen. Die Einheit eines Anteils ist turns/n (falls n keine positive Zahl ist,
wird das polar nicht angezeigt).
Falls die Zahl der Listenpunkte größer als n ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als n ist, werden die
Listenpunkte wiederholt.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '0' angegeben.
f1
= "<Liste von Zahlen>"
f2
= "<Liste von Zahlen>"
Liste von anteiligen Rundenabweichungen für die entsprechenden Kontrollpunkten des polar.
Der Anteil wird relativ zur Winkelposition des Eckpunktes eines regulären Polygons
genommen. Die Einheit eines Anteils ist turns/n (falls n keine positive Zahl ist,
wird das polar nicht angezeigt).
Falls die Zahl der Listenpunkte größer als n ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als n ist, werden die
Listenpunkte wiederholt.
Falls das Attribut nicht angegeben ist, wird die gleiche fractions-Liste wie für das
Attribut fractions angenommen.
df
= "<Liste von Zahlen>"
Liste von Punkt-zu-Punkt-Deltas für den Winkel in turns/n, erstens für Punkte, zweitens
und drittens für Kontrollpunkte. Für Details siehe unten.
Falls die Zahl der Listenpunkte größer als 3 ist, werden die letzten überflüssigen
Listenpunkte ignoriert.
Falls die Zahl der Listenpunkte kleiner als 3 ist, werden die
unspezifizierten Zahlen als 1 angenommen.
i
= "<Zahl>"
Die Zahl der Eckens eines zusätzlichen Polygons (Inverter genannt).
Dies ist vorgesehen, es zu ermöglichen, ein Loch in einer Form zu erzeugen.
Für ein i kleiner als 3 wird dieses Pfadfragment nicht angzeigt.
Falls das Attribut nicht angegeben ist, ergibt das den gleichen Effekt als sei '4' angegeben.
Falls versehentlich keine ganze Zahl angegeben ist, wird ceil(i) als Wert verwendet, also
aufgerundet.
ir
= "<Zahl>"
Radius für den zusätzlichen Invertor. Der Radius kann
positiv, negativ oder null sein.
Falls das Attribut nicht angegeben ist, besteht der Effekt darin, daß
das zusätzliche Pfadfragment Inverter nicht angezeigt wird.
Besonders wenn i größer als 2 ist und der Betrag von von ir ist etwa
zweimal größer als der größte Wert der r-Liste, liegt das polar komplett
komplett im Inverter, was bedeutet, abhängig von der fill-rule und
der Richtung des polar und des Inverters kann das polar ein Loch
im Invertor erzeugen.
a) Einfaches reguläres Polygon, konvex
turns="1"
z="1"
fractions="1"
cy, cy irgendwelche sinnvolle Werte
r exakt ein sinnvoller Wert, zum Beispiel 100
n irgendein sinnvoller Wert größer als 2
b) einfaches symmetrisches Polygon, konkav, 'Stern'
turns="1"
z="1"
fractions="1"
cy, cy irgendwelche sinnvolle Werte
r exakt zwei sinnvolle Werte mit gleichem Vorzeichen
n irgendein sinnvoller Wert größer als 2
c) symmetrisches Polygon, komplexer 'Stern' mit Überschneidungen
turns="1"
z="1"
fractions="1"
cy, cy irgendwelche sinnvolle Werte
r exakt zwei sinnvolle Werte mit unterschiedlichem Vorzeichen
n irgendein sinnvoller Wert größer als 2
d) Reguläres Polygon, mögliche Überschneidungen, ein anderer 'Stern'-Typ
z="1"
fractions="1"
cy, cy, n irgendwelche sinnvolle Werte
r exakt ein Wert
n irgendeine Zahl größer als 4
turns eine ganze Zahl ohne gemeinsamen Faktor mit n
(turns kann immer nicht größer als n gewählt werden, ohne einen Figurtyp zu verpassen).
e) Symmetrisches Polygon, komplexer mit guter Kombination von n und turns
z="1" fractions="1"
cy, cy, n irgendwelche sinnvolle Werte
r: k Werte
n = k * j mit j größer als 2,
turns eine ganze Zahl ohne gemeinsamen Faktor mit n
(turns kann immer nicht größer als n gewählt werden, ohne einen Figurtyp zu verpassen).