Start · Sprachen · PHP · Referenz · ps_moveto

ps_moveto

Funktion

Setzt den aktuellen Zeichenpunkt in einem PostScript-Dokument auf die angegebenen Koordinaten.

seit PHP 4.3.0 Kategorie: misc

Signatur

ps_moveto(resource $psdoc, float $x, float $y): bool

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

Typ
bool
Beschreibung
Gibt 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.';
?>
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.';
?>
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().