PHP 7.4.24 Released!

ps_rotate

(PECL ps >= 1.1.0)

ps_rotateУстанавливает коэффициент вращения

Описание

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

Устанавливает поворот системы координат.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

rot

Угол поворота в градусах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Вращение системы координат

<?php
function rectangle($ps) {
    
ps_moveto($ps00);
    
ps_lineto($ps050);
    
ps_lineto($ps5050);
    
ps_lineto($ps500);
    
ps_lineto($ps00);
    
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($ps596842);
ps_set_text_pos($ps100100);
ps_save($ps);
ps_translate($ps100100);
ps_rotate($ps45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps$psfont8.0);
ps_show($ps"Текст без поворота");
ps_end_page($ps);

ps_delete($ps);
?>

В приведённом выше примере показан очень распространённый способ поворота изображения (в данном случае просто прямоугольника) путём поворота системы координат. Поскольку система координат графики предполагает, что (0,0) является началом координат, система координат страницы также переводится, чтобы разместить графику не на краю страницы. Обратите внимание на порядок ps_translate() и ps_rotate(). В приведённом выше примере прямоугольник вращается вокруг точки (100, 100) в непереведённой системе координат. Переключение двух операторов даёт совершенно другой результат.

Чтобы вывести следующий текст в исходной позиции, все модификации системы координат инкапсулируются в ps_save() и ps_restore().

Смотрите также

  • ps_scale() - Устанавливает коэффициент масштабирования
  • ps_translate() - Sets translation

add a note add a note

User Contributed Notes

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