English | 简体中文 | 繁體中文
查询

ps_translate()函数—用法及示例

「 设置翻译;套译法; 」


(PECL ps >= 1.1.0)

ps_translate — 设置翻译;套译法;

说明

ps_translate(resource $psdoc, float $x, float $y): bool

设置坐标系统的一个新的初始点。

参数
psdoc
postscript文件的资源标识符,由ps_new()返回。

x
平移坐标系的原点的x坐标。

y
平移后的坐标系原点的y坐标。

返回值
成功时返回 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, "translate.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated 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_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>
上面的示例演示了两种可能的方法,将图形(在本例中只是一个矩形)放置在页面上的任何位置,而图形本身使用自己的坐标系统。诀窍是在绘制矩形之前改变当前坐标系的原点。图画画好后,翻译必须撤消。

在第二页上,应用了一种稍微不同但更优雅的方法。在修改坐标系统之前保存图形上下文,并在绘制矩形之后恢复图形上下文,而不是通过第二次调用ps_translate()来取消平移。

补充纠错
上一个函数: putenv()函数
下一个函数: ps_symbol_width()函数
热门PHP函数
分享链接