Signatur
Beschreibung
ps_closepath() ist Teil der PS-Erweiterung (pslib) für PHP und schließt den aktuell geöffneten Pfad im PostScript-Dokument. Dabei wird eine gerade Linie vom zuletzt gesetzten Punkt zurück zum Anfangspunkt des Pfades gezeichnet, sodass ein geschlossenes geometrisches Objekt entsteht.
Diese Funktion entspricht dem PostScript-Operator closepath. Sie wird typischerweise nach dem Zeichnen von Linien oder Kurven eingesetzt, wenn sichergestellt werden soll, dass eine Form vollständig geschlossen ist – z. B. bei Dreiecken, Polygonen oder anderen Figuren, bei denen Anfangs- und Endpunkt übereinstimmen sollen.
Nach dem Schließen des Pfades kann dieser mit ps_stroke() gezeichnet, mit ps_fill() gefüllt oder mit ps_fill_stroke() gleichzeitig gefüllt und gezeichnet werden. Ohne ps_closepath() würde der Pfad offen bleiben, und beim Füllen oder Zeichnen könnte die Form unvollständig erscheinen.
Die Funktion ist besonders dann sinnvoll, wenn man geometrisch korrekte, lückenlose Konturen benötigt, da ein manuell an den Startpunkt zurückgeführter Linienzug am Verbindungspunkt sichtbare Lücken oder unschöne Gelenke (Linejoin-Artefakte) erzeugen kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die zuvor mit ps_new() erzeugt und mit ps_open_file() geöffnet wurde. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall.Beispiele
Geschlossenes Dreieck zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'dreieck.ps');
ps_begin_page($ps, 596, 842);
// Pfad für ein Dreieck definieren
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 150, 200);
// Pfad schließen: verbindet (150,200) automatisch mit (100,100)
ps_closepath($ps);
// Linienstärke und Farbe setzen, dann zeichnen
ps_setlinewidth($ps, 2.0);
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 1.0, 0.0);
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Dreieck erfolgreich erstellt.';
?>
Gefülltes geschlossenes Polygon
<?php
$ps = ps_new();
ps_open_file($ps, 'polygon.ps');
ps_begin_page($ps, 596, 842);
// Fünfeck-Pfad
ps_moveto($ps, 150, 300);
ps_lineto($ps, 250, 300);
ps_lineto($ps, 280, 200);
ps_lineto($ps, 200, 150);
ps_lineto($ps, 120, 200);
// Pfad schließen
ps_closepath($ps);
// Füllfarbe setzen und füllen + Kontur zeichnen
ps_setcolor($ps, 'fill', 'rgb', 1.0, 0.8, 0.0, 0.0);
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
ps_setlinewidth($ps, 1.5);
ps_fill_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Polygon erfolgreich erstellt.';
?>
// Wichtig · Fallstricke
Voraussetzung: Die ps-Erweiterung (pslib) muss in PHP installiert und aktiviert sein. Sie ist nicht Teil des PHP-Kern-Pakets und wird in modernen Umgebungen selten standardmäßig mitgeliefert.
Wenn kein Pfad geöffnet ist (d. h. kein vorheriges ps_moveto() aufgerufen wurde), kann ps_closepath() zu einem Fehler oder unerwartetem Verhalten führen.
Die Funktion zeichnet die schließende Linie nicht sofort sichtbar – erst durch ps_stroke(), ps_fill() oder ps_fill_stroke() wird der Pfad tatsächlich auf der Seite ausgegeben.