Signatur
Beschreibung
ps_moveto() verschiebt den aktuellen Punkt im PostScript-Dokument auf die angegebenen Koordinaten (x, y), ohne eine Linie zu zeichnen. Dies entspricht dem PostScript-Operator moveto und beginnt typischerweise einen neuen Teilpfad.
Die Funktion wird üblicherweise zu Beginn eines Pfades aufgerufen, bevor mit ps_lineto(), ps_curveto() oder ähnlichen Funktionen Linien und Kurven gezeichnet werden. Der Koordinatenursprung (0, 0) liegt standardmäßig links unten auf der Seite, die y-Achse zeigt nach oben.
Ein typischer Ablauf beim Zeichnen eines Pfades sieht so aus: Zuerst wird mit ps_moveto() der Startpunkt gesetzt, dann werden mit ps_lineto() weitere Punkte verbunden, und abschließend wird der Pfad mit ps_stroke() oder ps_fill() gerendert.
Hinweis: Diese Funktion gehört zur ps-Erweiterung (pslib) und erzeugt PostScript-Dokumente. Sie ist nicht zu verwechseln mit PDF-Bibliotheken wie PDFlib oder FPDF.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $x Pflicht | float | Die x-Koordinate des neuen aktuellen Punktes in der aktuellen Maßeinheit (standardmäßig Punkte). | |
| $y Pflicht | float | Die y-Koordinate des neuen aktuellen Punktes in der aktuellen Maßeinheit. Der Ursprung liegt links unten, y wächst nach oben. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn psdoc keine gültige Ressource ist).Beispiele
Einfache Linie mit ps_moveto und ps_lineto zeichnen
<?php
// PostScript-Dokument erstellen
$ps = ps_new();
if (!$ps) {
die('Konnte kein PS-Dokument erstellen.');
}
ps_open_file($ps, 'ausgabe.ps');
ps_set_info($ps, 'Creator', 'Beispielskript');
ps_set_info($ps, 'Title', 'Linienbeispiel');
ps_begin_page($ps, 596, 842); // DIN A4 in Punkten
// Strichfarbe auf Schwarz setzen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
// Strichstärke setzen
ps_setlinewidth($ps, 2.0);
// Startpunkt setzen
ps_moveto($ps, 100, 700);
// Linie zum Endpunkt zeichnen
ps_lineto($ps, 400, 700);
// Pfad rendern
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei erfolgreich erstellt.';
?>
Dreieck mit ps_moveto zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'dreieck.ps');
ps_set_info($ps, 'Title', 'Dreieck');
ps_begin_page($ps, 596, 842);
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 1.0, 0.0); // Blau
ps_setlinewidth($ps, 1.5);
// Ersten Eckpunkt anfahren (kein Strich)
ps_moveto($ps, 298, 600);
// Seiten des Dreiecks zeichnen
ps_lineto($ps, 150, 400);
ps_lineto($ps, 446, 400);
// Zurück zum Startpunkt schließen
ps_closepath($ps);
// Pfad rendern
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Dreieck gezeichnet.';
?>
// Wichtig · Fallstricke
Erweiterung erforderlich: Die ps-Erweiterung muss kompiliert und aktiviert sein (extension=ps in der php.ini). Sie basiert auf der externen Bibliothek pslib. In vielen Standard-PHP-Installationen ist diese Erweiterung nicht enthalten.
Koordinatensystem: Das PostScript-Koordinatensystem hat seinen Ursprung unten links. Im Gegensatz zu vielen anderen Grafiksystemen wächst die y-Achse nach oben. Dies muss beim Positionieren von Elementen beachtet werden.
Kein Zeichnen: ps_moveto() zeichnet selbst keine sichtbare Linie, sondern setzt lediglich den aktuellen Punkt. Sichtbare Ausgabe entsteht erst durch nachfolgende Pfad- und Rendering-Funktionen wie ps_lineto() und ps_stroke().