PHP Conference Nagoya 2025

ps_rotate

(PECL ps >= 1.1.0)

ps_rotateEstablecer el factor de rotación

Descripción

ps_rotate(resource $psdoc, float $rot): bool

Establece la rotación del sistema de coordenadas.

Parámetros

psdoc

El identificador de recursos del fichero postscript, como el devuelto por la función ps_new().

rot

El ángulo de rotación en grados.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Rotación del sistema de coordenadas

<?php
function rectángulo($ps) {
ps_moveto($ps, 0, 0);
ps_lineto($ps, 0, 50);
ps_lineto($ps, 50, 50);
ps_lineto($ps, 50, 0);
ps_lineto($ps, 0, 0);
ps_stroke($ps);
}

$ps = ps_new();
if (!
ps_open_file($ps, "rotación.ps")) {
print
"No se pudo abrir el fichero PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "rotación.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Ejemplo de rotación");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectángulo($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Texto sin rotación");
ps_end_page($ps);

ps_delete($ps);
?>

El ejemplo anterior ilustra una forma muy común de rotar un gráfico (en este caso un rectángulo) simplemente rotando el sistema de coordenadas. Ya que se asume que el origen del sistema de coordenadas del gráfico es (0,0), el sistema de coordenadas de la página también es trasladado para colocar los gráficos no en el extremo de la pagina. Se debe poner atención en el orden de ps_translate() y ps_rotate(). En el caso anterior el rectángulo es rotado alrededor del punto (100, 100) en el sistema de coordenadas sin trasladar. Si se cambian las dos sentencias se obtendrá un resultado completamente diferente.

Para poder imprimir el texto siguiente en la posición original, todas las modificaciones del sistema de coordenadas son encapsuladas en las funciones ps_save() y ps_restore().

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top