Signatur
Beschreibung
ps_lineto() gehört zur PHP-PostScript-Erweiterung (ps) und fügt dem aktuellen Pfad im PostScript-Dokument ein Liniensegment hinzu. Die Linie verläuft vom aktuellen Zeichenpunkt bis zum angegebenen Zielpunkt (x, y). Nach dem Aufruf wird der Zielpunkt zum neuen aktuellen Punkt.
Die Funktion zeichnet selbst noch keine sichtbare Linie – der Pfad muss anschließend mit ps_stroke(), ps_fill() oder verwandten Funktionen gerendert werden. Typischerweise wird der Ausgangspunkt zuvor mit ps_moveto() gesetzt.
Mit mehrfachen Aufrufen von ps_lineto() lassen sich Polygone, Polylinien und komplexe geometrische Formen aufbauen. Die Koordinaten werden im PostScript-Koordinatensystem angegeben, wobei der Ursprung standardmäßig unten links liegt.
Diese Funktion ist sinnvoll, wenn vektorbasierte Grafiken direkt als PostScript-Dokument erzeugt werden sollen, etwa für Druckausgaben, technische Zeichnungen oder PDF-ähnliche Dokumente mit präziser Geometrie.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Eine gültige PostScript-Dokumentressource, die zuvor mit ps_new() erstellt und mit ps_open_file() geöffnet wurde. |
|
| $x Pflicht | float | Die X-Koordinate des Zielpunktes im PostScript-Koordinatensystem (in Punkten, 1 Punkt = 1/72 Zoll). | |
| $y Pflicht | float | Die Y-Koordinate des Zielpunktes im PostScript-Koordinatensystem (in Punkten, 1 Punkt = 1/72 Zoll). |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Dokumentressource oder kein aktiver Pfad).Beispiele
Einfache Linie von Punkt A nach Punkt B zeichnen
<?php
$ps = ps_new();
if (!ps_open_file($ps, 'linie.ps')) {
die('Datei konnte nicht geöffnet werden.');
}
ps_begin_page($ps, 596, 842); // DIN A4 in Punkten
// Linienstil festlegen
ps_setlinewidth($ps, 2.0);
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 1.0, 0.0); // Blau
// Pfad starten und Linie zeichnen
ps_moveto($ps, 50, 750); // Startpunkt
ps_lineto($ps, 300, 750); // Endpunkt
// Pfad rendern (sichtbar machen)
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erstellt.';
?>
Dreieck mit mehreren ps_lineto()-Aufrufen zeichnen
<?php
$ps = ps_new();
if (!ps_open_file($ps, 'dreieck.ps')) {
die('Datei konnte nicht geöffnet werden.');
}
ps_begin_page($ps, 596, 842);
ps_setlinewidth($ps, 1.5);
ps_setcolor($ps, 'stroke', 'rgb', 1.0, 0.0, 0.0, 0.0); // Rot
// Dreieck-Pfad aufbauen
ps_moveto($ps, 100, 600); // Ecke 1
ps_lineto($ps, 300, 600); // Ecke 2
ps_lineto($ps, 200, 750); // Ecke 3
ps_closepath($ps); // Zurück zur Ecke 1
// Pfad mit Kontur zeichnen und füllen
ps_setcolor($ps, 'fill', 'rgb', 1.0, 1.0, 0.0, 0.0); // Gelbe Füllung
ps_fill_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Dreieck wurde gezeichnet.';
?>
// Wichtig · Fallstricke
Reihenfolge beachten: Vor dem ersten Aufruf von ps_lineto() muss der aktuelle Punkt mit ps_moveto() gesetzt werden, da sonst kein definierter Ausgangspunkt existiert und die Funktion möglicherweise fehlschlägt oder unerwartete Ergebnisse liefert.
Koordinatensystem: Das PostScript-Koordinatensystem hat seinen Ursprung standardmäßig unten links auf der Seite, und die Y-Achse wächst nach oben. Dies unterscheidet sich von vielen anderen Grafiksystemen, bei denen der Ursprung oben links liegt.
Erweiterungsverfügbarkeit: Die ps-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (PECL). Sie wird in vielen modernen Umgebungen kaum noch eingesetzt; für PDF-Erzeugung empfehlen sich Alternativen wie FPDF, TCPDF oder die imagick-Erweiterung.