(PECL ps >= 1.1.0)
ps_rotate — 设置旋转因子
范例 #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", "旋转示例");
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() 中。