EVOLUTION-MANAGER
Edit File: grid.convert.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>R: Convert Between Different grid Coordinate Systems</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="R.css" /> </head><body> <table width="100%" summary="page for grid.convert {grid}"><tr><td>grid.convert {grid}</td><td style="text-align: right;">R Documentation</td></tr></table> <h2> Convert Between Different grid Coordinate Systems </h2> <h3>Description</h3> <p>These functions take a unit object and convert it to an equivalent unit object in a different coordinate system. </p> <h3>Usage</h3> <pre> convertX(x, unitTo, valueOnly = FALSE) convertY(x, unitTo, valueOnly = FALSE) convertWidth(x, unitTo, valueOnly = FALSE) convertHeight(x, unitTo, valueOnly = FALSE) convertUnit(x, unitTo, axisFrom = "x", typeFrom = "location", axisTo = axisFrom, typeTo = typeFrom, valueOnly = FALSE) </pre> <h3>Arguments</h3> <table summary="R argblock"> <tr valign="top"><td><code>x</code></td> <td> <p> A unit object. </p> </td></tr> <tr valign="top"><td><code>unitTo</code></td> <td> <p> The coordinate system to convert the unit to. See the <code><a href="unit.html">unit</a></code> function for valid coordinate systems.</p> </td></tr> <tr valign="top"><td><code>axisFrom</code></td> <td> <p> Either <code>"x"</code> or <code>"y"</code> to indicate whether the unit object represents a value in the x- or y-direction. </p> </td></tr> <tr valign="top"><td><code>typeFrom</code></td> <td> <p> Either <code>"location"</code> or <code>"dimension"</code> to indicate whether the unit object represents a location or a length. </p> </td></tr> <tr valign="top"><td><code>axisTo</code></td> <td> <p> Same as <code>axisFrom</code>, but applies to the unit object that is to be created. </p> </td></tr> <tr valign="top"><td><code>typeTo</code></td> <td> <p> Same as <code>typeFrom</code>, but applies to the unit object that is to be created. </p> </td></tr> <tr valign="top"><td><code>valueOnly</code></td> <td> <p> A logical indicating. If <code>TRUE</code> then the function does not return a unit object, but rather only the converted numeric values. </p> </td></tr> </table> <h3>Details</h3> <p>The <code>convertUnit</code> function allows for general-purpose conversions. The other four functions are just more convenient front-ends to it for the most common conversions. </p> <p>The conversions occur within the current viewport. </p> <p>It is not currently possible to convert to all valid coordinate systems (e.g., "strwidth" or "grobwidth"). I'm not sure if all of these are impossible, they just seem implausible at this stage. </p> <p>In normal usage of grid, these functions should not be necessary. If you want to express a location or dimension in inches rather than user coordinates then you should simply do something like <code>unit(1, "inches")</code> rather than something like <code>unit(0.134, "native")</code>. </p> <p>In some cases, however, it is necessary for the user to perform calculations on a unit value and this function becomes necessary. In such cases, please take note of the warning below. </p> <h3>Value</h3> <p>A unit object in the specified coordinate system (unless <code>valueOnly</code> is <code>TRUE</code> in which case the returned value is a numeric). </p> <h3>Warning</h3> <p>The conversion is only valid for the current device size. If the device is resized then at least some conversions will become invalid. For example, suppose that I create a unit object as follows: <code>oneinch <- convertUnit(unit(1, "inches"), "native")</code>. Now if I resize the device, the unit object in oneinch no longer corresponds to a physical length of 1 inch. </p> <h3>Author(s)</h3> <p> Paul Murrell </p> <h3>See Also</h3> <p><code><a href="unit.html">unit</a></code> </p> <h3>Examples</h3> <pre> ## A tautology convertX(unit(1, "inches"), "inches") ## The physical units convertX(unit(2.54, "cm"), "inches") convertX(unit(25.4, "mm"), "inches") convertX(unit(72.27, "points"), "inches") convertX(unit(1/12*72.27, "picas"), "inches") convertX(unit(72, "bigpts"), "inches") convertX(unit(1157/1238*72.27, "dida"), "inches") convertX(unit(1/12*1157/1238*72.27, "cicero"), "inches") convertX(unit(65536*72.27, "scaledpts"), "inches") convertX(unit(1/2.54, "inches"), "cm") convertX(unit(1/25.4, "inches"), "mm") convertX(unit(1/72.27, "inches"), "points") convertX(unit(1/(1/12*72.27), "inches"), "picas") convertX(unit(1/72, "inches"), "bigpts") convertX(unit(1/(1157/1238*72.27), "inches"), "dida") convertX(unit(1/(1/12*1157/1238*72.27), "inches"), "cicero") convertX(unit(1/(65536*72.27), "inches"), "scaledpts") pushViewport(viewport(width=unit(1, "inches"), height=unit(2, "inches"), xscale=c(0, 1), yscale=c(1, 3))) ## Location versus dimension convertY(unit(2, "native"), "inches") convertHeight(unit(2, "native"), "inches") ## From "x" to "y" (the conversion is via "inches") convertUnit(unit(1, "native"), "native", axisFrom="x", axisTo="y") ## Convert several values at once convertX(unit(c(0.5, 2.54), c("npc", "cm")), c("inches", "native")) popViewport() ## Convert a complex unit convertX(unit(1, "strwidth", "Hello"), "native") </pre> <hr /><div style="text-align: center;">[Package <em>grid</em> version 3.6.0 <a href="00Index.html">Index</a>]</div> </body></html>