Signatur
Beschreibung
ps_arcn zeichnet einen Bogen im Uhrzeigersinn um den Mittelpunkt (x, y) mit dem angegebenen Radius. Der Bogen beginnt beim Winkel alpha und endet beim Winkel beta, wobei die Richtung entgegen der mathematisch positiven Drehrichtung verläuft (also im Uhrzeigersinn).
Die Funktion ist Teil der ps-Extension (pslib) und wird verwendet, um kreisbogenförmige Pfade in PostScript-Dokumenten zu erstellen. Winkelangaben erfolgen in Grad (nicht Bogenmaß), wobei 0° der positiven x-Achse entspricht.
Typischer Einsatz ist das Zeichnen von Kreisbögen, runden Ecken oder Teil-Ellipsen in PostScript-Grafiken. Im Gegensatz zu ps_arc, das gegen den Uhrzeigersinn zeichnet, eignet sich ps_arcn besonders dann, wenn die Laufrichtung des Pfads im Uhrzeigersinn benötigt wird, z. B. für Ausschneidepfade oder bestimmte Füllregeln.
Der erzeugte Bogen wird in den aktuellen Pfad des PostScript-Dokuments eingefügt und muss anschließend mit Funktionen wie ps_stroke, ps_fill oder ps_clip verarbeitet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die PostScript-Ressource, die zuvor mit ps_new() erzeugt wurde. |
|
| $x Pflicht | float | Die x-Koordinate des Mittelpunkts des Bogens in Punkten (pt). | |
| $y Pflicht | float | Die y-Koordinate des Mittelpunkts des Bogens in Punkten (pt). | |
| $radius Pflicht | float | Der Radius des Bogens in Punkten (pt). | |
| $alpha Pflicht | float | Startwinkel des Bogens in Grad. 0° entspricht der positiven x-Achse. | |
| $beta Pflicht | float | Endwinkel des Bogens in Grad. Der Bogen wird im Uhrzeigersinn von alpha nach beta gezeichnet. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall.Beispiele
Einfacher Bogen im Uhrzeigersinn zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'bogen.ps');
ps_begin_page($ps, 595, 842);
// Strichfarbe schwarz setzen
ps_setcolor($ps, 'stroke', 'rgb', 0, 0, 0, 0);
ps_setlinewidth($ps, 2.0);
// Bogen im Uhrzeigersinn von 90° nach 0° (Mittelpunkt: 200/400, Radius: 100)
ps_arcn($ps, 200, 400, 100, 90, 0);
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei mit Bogen erstellt.';
?>
Vollständigen Kreis über ps_arcn zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'kreis.ps');
ps_begin_page($ps, 595, 842);
ps_setcolor($ps, 'stroke', 'rgb', 0.2, 0.4, 0.8, 0);
ps_setlinewidth($ps, 1.5);
// Vollständiger Kreis im Uhrzeigersinn: 360° → 0°
ps_arcn($ps, 297, 421, 150, 360, 0);
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Kreis gezeichnet.';
?>
// Wichtig · Fallstricke
Richtungsunterschied: ps_arcn zeichnet im Uhrzeigersinn, während ps_arc gegen den Uhrzeigersinn zeichnet. Das beeinflusst die Füllrichtung bei komplexen Pfaden und die Even-Odd-Füllregel.
Voraussetzung: Die ps-Extension (pslib) muss installiert und aktiviert sein. Sie ist nicht standardmäßig in PHP enthalten und wird in modernen Umgebungen selten eingesetzt. Prüfe die Verfügbarkeit mit extension_loaded('ps').
Winkelangaben in Grad: 0° = rechts (positive x-Achse), 90° = oben, 180° = links, 270° = unten.