Signatur
Beschreibung
ps_rotate() dreht das aktuelle Koordinatensystem eines PostScript-Dokuments um den angegebenen Winkel in Grad. Die Rotation wird auf das bestehende Koordinatensystem angewendet und beeinflusst alle nachfolgenden Zeichenoperationen.
Die Funktion gehört zur ps-Erweiterung (pslib) von PHP und erlaubt es, Grafiken, Texte oder andere Elemente gedreht auf einer Seite zu platzieren. Der Winkel wird im Gegenuhrzeigersinn gemessen, wie es im PostScript-Standard üblich ist.
Um die Rotation auf einen bestimmten Bereich zu begrenzen, sollte man die Transformation mit ps_save() und ps_restore() einschließen. Andernfalls wirkt die Rotation auf alle weiteren Zeichenoperationen bis zum Ende der Seite oder bis zur nächsten Transformation.
- Positive Werte drehen gegen den Uhrzeigersinn.
- Negative Werte drehen im Uhrzeigersinn.
- Ein Winkel von 360 entspricht einer vollständigen Umdrehung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $rot Pflicht | float | Der Rotationswinkel in Grad. Positive Werte drehen das Koordinatensystem gegen den Uhrzeigersinn, negative Werte im Uhrzeigersinn. |
Rückgabewert
true bei Erfolg zurück, oder false bei einem Fehler.Beispiele
Text um 45 Grad rotiert ausgeben
<?php
$ps = ps_new();
if (!$ps) {
die('Konnte keine PS-Ressource erstellen');
}
ps_open_file($ps, 'rotierter_text.ps');
ps_set_info($ps, 'Creator', 'Beispiel');
ps_set_info($ps, 'Title', 'Rotierter Text');
ps_begin_page($ps, 596, 842); // DIN A4
// Schrift laden und setzen
ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, 1, 20.0);
// Aktuellen Zustand speichern
ps_save($ps);
// Koordinatenursprung verschieben, dann rotieren
ps_translate($ps, 200, 400);
ps_rotate($ps, 45.0);
// Text an der neuen (rotierten) Position ausgeben
ps_show_xy($ps, 'Hallo, Welt!', 0, 0);
// Zustand wiederherstellen (Rotation aufheben)
ps_restore($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erstellt.';
?>
Rechteck um 30 Grad gedreht zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, 'gedrehtes_rechteck.ps');
ps_set_info($ps, 'Title', 'Gedrehtes Rechteck');
ps_begin_page($ps, 596, 842);
ps_save($ps);
// Ursprung in die Mitte der Seite verschieben
ps_translate($ps, 298, 421);
// 30 Grad gegen den Uhrzeigersinn rotieren
ps_rotate($ps, 30.0);
// Rechteck zeichnen
ps_rect($ps, -100, -50, 200, 100);
ps_stroke($ps);
ps_restore($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Gedrehtes Rechteck wurde erstellt.';
?>
// Wichtig · Fallstricke
Hinweis zur Erweiterung: ps_rotate() gehört zur ps-Erweiterung (pslib), die nicht standardmäßig in PHP enthalten ist. Sie muss separat installiert und aktiviert werden.
Wichtig: Rotationen sind kumulativ. Wird ps_rotate() mehrfach hintereinander aufgerufen, ohne den Zustand mit ps_save()/ps_restore() zu sichern, addieren sich die Winkel. Es empfiehlt sich daher immer, Transformationen in einem ps_save()/ps_restore()-Block einzuschließen.
Der Winkel wird im PostScript-Standard im Gegenuhrzeigersinn gemessen, was sich vom üblichen Screen-Koordinatensystem unterscheidet, wo positive Winkel im Uhrzeigersinn verlaufen.