Signatur
Beschreibung
ps_setpolydash() gehört zur PHP-PostScript-Erweiterung (ps) und legt das Aussehen gestrichelter Linien in einem PostScript-Dokument fest. Im Gegensatz zu ps_setdash(), das nur einen einfachen Strich-Lücken-Rhythmus kennt, kann ps_setpolydash() komplexe Muster mit beliebig vielen abwechselnden Strich- und Lückenlängen definieren.
Die übergebenen Gleitkommazahlen werden als Array interpretiert, wobei gerade Indizes (0, 2, 4 …) die Länge der gezeichneten Striche und ungerade Indizes (1, 3, 5 …) die Länge der Lücken angeben. Damit lassen sich z. B. gemischte Muster aus kurzen und langen Strichen mit unterschiedlich großen Lücken erzeugen.
Die Funktion wirkt auf alle nachfolgend gezeichneten Linien, Pfade und Rahmen innerhalb des aktiven PostScript-Dokuments. Um wieder zu einer durchgehenden Linie zurückzukehren, kann ps_setdash() mit dem Wert 0, 0 aufgerufen werden.
Diese Funktion ist sinnvoll, wenn technische Zeichnungen, Diagramme oder Karten mit unterschiedlichen Linientypen (z. B. Strich-Punkt-Linien) erzeugt werden sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $dasharray Pflicht | float | Eine variable Anzahl von Gleitkommazahlen, die abwechselnd Strichlängen und Lückenlängen in Punkt (pt) angeben. Die erste Zahl ist die Länge des ersten Strichs, die zweite die Länge der ersten Lücke, usw. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler, z. B. wenn das übergebene Dokument-Handle ungültig ist.Beispiele
Einfaches Strich-Punkt-Muster zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 596, 842);
// Strich-Punkt-Linie: 10pt Strich, 3pt Lücke, 2pt Strich, 3pt Lücke
ps_setpolydash($ps, 10.0, 3.0, 2.0, 3.0);
ps_moveto($ps, 50, 400);
ps_lineto($ps, 546, 400);
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei erfolgreich erstellt.';
?>
Komplexes Linienmuster mit mehreren Strich-Lücken-Paaren
<?php
$ps = ps_new();
ps_open_file($ps, 'muster.ps');
ps_begin_page($ps, 596, 842);
// Komplexes Muster: lang – kurz – kurz
ps_setpolydash($ps, 15.0, 4.0, 4.0, 4.0, 4.0, 4.0);
ps_setlinewidth($ps, 1.5);
ps_moveto($ps, 50, 600);
ps_lineto($ps, 546, 600);
ps_stroke($ps);
// Zurück zu durchgehender Linie
ps_setdash($ps, 0, 0);
ps_moveto($ps, 50, 550);
ps_lineto($ps, 546, 550);
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Komplexes Linienmuster erstellt.';
?>
// Wichtig · Fallstricke
Erweiterung erforderlich: ps_setpolydash() gehört zur ps-Erweiterung, die separat kompiliert oder installiert werden muss und standardmäßig nicht in PHP enthalten ist.
Die Anzahl der übergebenen Parameter sollte gerade sein (gleich viele Strich- und Lückenwerte). Bei einer ungeraden Anzahl wird das Muster intern gespiegelt, was zu unerwartetem Verhalten führen kann.
Alle Längenangaben beziehen sich auf Punkt (1/72 Zoll). Das Linienmuster bleibt aktiv, bis es durch einen erneuten Aufruf von ps_setpolydash() oder ps_setdash() geändert wird.