Start · Sprachen · PHP · Referenz · ps_closepath_stroke

ps_closepath_stroke

Funktion

Schließt den aktuellen Pfad und zeichnet dessen Umriss (Stroke) in einem einzigen Schritt.

Kategorie: misc

Signatur

ps_closepath_stroke(resource $psdoc): bool

Beschreibung

ps_closepath_stroke() kombiniert die Operationen Pfad schließen und Pfad zeichnen (Stroke) in einem einzigen Aufruf. Der aktuelle Pfad wird zunächst durch eine gerade Linie vom aktuellen Punkt zurück zum Startpunkt des Pfades geschlossen und anschließend mit der aktuell eingestellten Linienfarbe und Linienbreite gezeichnet. Nach dem Aufruf wird der Pfad verworfen.

Diese Funktion ist Teil der ps-Erweiterung (PSlib) und erzeugt PostScript-Ausgaben. Sie ist besonders nützlich, wenn geschlossene geometrische Formen wie Rechtecke, Polygone oder andere Vielecke nur mit einem sichtbaren Umriss, aber ohne Füllung dargestellt werden sollen.

Im Gegensatz zu ps_closepath(), das den Pfad nur schließt, ohne ihn zu zeichnen, und zu ps_stroke(), das den aktuellen (möglicherweise offenen) Pfad zeichnet, führt ps_closepath_stroke() beides nacheinander aus. Dies spart Code und entspricht dem PostScript-Operator closepath stroke.

  • Vor dem Aufruf sollte mit ps_moveto() und ps_lineto() (oder ähnlichen Funktionen) ein Pfad aufgebaut worden sein.
  • Linieneigenschaften wie Farbe (ps_setcolor()) und Breite (ps_setlinewidth()) sollten vorab gesetzt werden.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Die Ressource des PostScript-Dokuments, die von ps_new() zurückgegeben wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, oder false im Fehlerfall.

Beispiele

Dreieck mit geschlossenem und gezeichnetem Pfad

<?php
$ps = ps_new();
ps_open_file($ps, 'dreieck.ps');
ps_begin_page($ps, 595, 842);

// Linienfarbe und -breite festlegen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.8, 0.0);
ps_setlinewidth($ps, 2.0);

// Pfad aufbauen: Dreieck
ps_moveto($ps, 100, 700);
ps_lineto($ps, 250, 500);
ps_lineto($ps, 50, 500);

// Pfad schließen und zeichnen
ps_closepath_stroke($ps);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'Dreieck-PostScript-Datei wurde erstellt.';
?>
Dreieck-PostScript-Datei wurde erstellt.

Geschlossenes Rechteck ohne Füllung

<?php
$ps = ps_new();
ps_open_file($ps, 'rechteck.ps');
ps_begin_page($ps, 595, 842);

// Linienfarbe: Schwarz, Breite: 1.5 pt
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
ps_setlinewidth($ps, 1.5);

// Rechteck-Pfad definieren
ps_moveto($ps, 100, 700);
ps_lineto($ps, 400, 700);
ps_lineto($ps, 400, 500);
ps_lineto($ps, 100, 500);

// Pfad schließen (zurück zu 100, 700) und Umriss zeichnen
ps_closepath_stroke($ps);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'Rechteck erfolgreich gezeichnet.';
?>
Rechteck erfolgreich gezeichnet.

// Wichtig · Fallstricke

Wichtig: Nach dem Aufruf von ps_closepath_stroke() wird der Pfad intern verworfen. Soll derselbe Pfad danach noch gefüllt oder anderweitig verwendet werden, muss er neu aufgebaut werden.

Die ps-Erweiterung ist nicht standardmäßig in PHP enthalten und erfordert die Installation der PSlib-Bibliothek sowie die Aktivierung der Erweiterung in der php.ini. Sie ist außerdem als experimental markiert, weshalb sich API und Verhalten in zukünftigen Versionen ändern können.

Soll der Pfad sowohl gefüllt als auch gezeichnet werden, steht ps_fill_stroke() (mit vorherigem ps_closepath()) oder ps_closepath() kombiniert mit ps_fill_stroke() zur Verfügung.