<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Sets translation</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.ps-symbol.html">ps_symbol</a></div> <div class="next" style="text-align: right; float: right;"><a href="book.rpmreader.html">RPM Reader</a></div> <div class="up"><a href="ref.ps.html">PS Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.ps-translate" class="refentry"> <div class="refnamediv"> <h1 class="refname">ps_translate</h1> <p class="verinfo">(PECL ps >= 1.1.0)</p><p class="refpurpose"><span class="refname">ps_translate</span> — <span class="dc-title">Sets translation</span></p> </div> <div class="refsect1 description" id="refsect1-function.ps-translate-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">bool</span> <span class="methodname"><strong>ps_translate</strong></span> ( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$psdoc</code></span> , <span class="methodparam"><span class="type">float</span> <code class="parameter">$x</code></span> , <span class="methodparam"><span class="type">float</span> <code class="parameter">$y</code></span> )</div> <p class="para rdfs-comment"> Sets a new initial point of the coordinate system. </p> </div> <div class="refsect1 parameters" id="refsect1-function.ps-translate-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter">psdoc</code></em></span> <dd> <p class="para"> Resource identifier of the postscript file as returned by <span class="function"><a href="function.ps-new.html" class="function">ps_new()</a></span>. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">x</code></em></span> <dd> <p class="para"> x-coordinate of the origin of the translated coordinate system. </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">y</code></em></span> <dd> <p class="para"> y-coordinate of the origin of the translated coordinate system. </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.ps-translate-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns <strong><code>TRUE</code></strong> on success or <strong><code>FALSE</code></strong> on failure. </p> </div> <div class="refsect1 examples" id="refsect1-function.ps-translate-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-3566"> <p><strong>Example #1 Translation of the coordinate system</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">rectangle</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">ps_moveto</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">ps_lineto</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">50</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">ps_lineto</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">50</span><span style="color: #007700">, </span><span style="color: #0000BB">50</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">ps_lineto</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">50</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">ps_lineto</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">ps_stroke</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$ps </span><span style="color: #007700">= </span><span style="color: #0000BB">ps_new</span><span style="color: #007700">();<br />if (!</span><span style="color: #0000BB">ps_open_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"translate.ps"</span><span style="color: #007700">)) {<br /> print </span><span style="color: #DD0000">"Cannot open PostScript file\n"</span><span style="color: #007700">;<br /> exit;<br />}<br /><br /></span><span style="color: #0000BB">ps_set_info</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Creator"</span><span style="color: #007700">, </span><span style="color: #DD0000">"translate.php"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_set_info</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Author"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Uwe Steinmann"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_set_info</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Title"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Translated example"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_set_info</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"BoundingBox"</span><span style="color: #007700">, </span><span style="color: #DD0000">"0 0 596 842"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$psfont </span><span style="color: #007700">= </span><span style="color: #0000BB">ps_findfont</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Helvetica"</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">ps_begin_page</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">596</span><span style="color: #007700">, </span><span style="color: #0000BB">842</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_set_text_pos</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_translate</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">750</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">rectangle</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_translate</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, -</span><span style="color: #0000BB">500</span><span style="color: #007700">, -</span><span style="color: #0000BB">750</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_setfont</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">$psfont</span><span style="color: #007700">, </span><span style="color: #0000BB">8.0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_show</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Text at initial position"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_end_page</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">ps_begin_page</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">596</span><span style="color: #007700">, </span><span style="color: #0000BB">842</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_set_text_pos</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_save</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_translate</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">750</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">rectangle</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_restore</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_setfont</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #0000BB">$psfont</span><span style="color: #007700">, </span><span style="color: #0000BB">8.0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_show</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">, </span><span style="color: #DD0000">"Text at initial position"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ps_end_page</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">ps_delete</span><span style="color: #007700">(</span><span style="color: #0000BB">$ps</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to be undone after the graphic has been drawn. </p></div> <div class="example-contents"><p> On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of <span class="function"><strong>ps_translate()</strong></span> the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle. </p></div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-function.ps-translate-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.ps-scale.html" class="function" rel="rdfs-seeAlso">ps_scale()</a> - Sets scaling factor</span></li> <li class="member"> <span class="function"><a href="function.ps-rotate.html" class="function" rel="rdfs-seeAlso">ps_rotate()</a> - Sets rotation factor</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.ps-symbol.html">ps_symbol</a></div> <div class="next" style="text-align: right; float: right;"><a href="book.rpmreader.html">RPM Reader</a></div> <div class="up"><a href="ref.ps.html">PS Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>