(PECL ps >= 1.1.0)
ps_rotate — Устанавливает коэффициент вращения
psdoc
Идентификатор ресурса файла postscript, возвращённый ps_new().
rot
Угол поворота в градусах.
Функция возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Вращение системы координат
<?php
function rectangle($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, "rotation.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}
ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
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);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Текст без поворота");
ps_end_page($ps);
ps_delete($ps);
?>
В приведённом выше примере показан очень распространённый способ поворота изображения (в данном случае просто прямоугольника) путём поворота системы координат. Поскольку система координат графики предполагает, что (0,0) является началом координат, система координат страницы также переводится, чтобы разместить графику не на краю страницы. Обратите внимание на порядок ps_translate() и ps_rotate(). В приведённом выше примере прямоугольник вращается вокруг точки (100, 100) в непереведённой системе координат. Переключение двух операторов даёт совершенно другой результат.
Чтобы вывести следующий текст в исходной позиции, все модификации системы координат инкапсулируются в ps_save() и ps_restore().