diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse21.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse21.html | 1761 |
1 files changed, 0 insertions, 1761 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse21.html b/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse21.html deleted file mode 100644 index 78aaaf40fa4..00000000000 --- a/Master/texmf-dist/doc/generic/pgf/version-for-tex4ht/en/pgfmanualse21.html +++ /dev/null @@ -1,1761 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> -<html > -<head><title>21 Constructing Paths</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<meta name="generator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)"> -<meta name="originator" content="TeX4ht (http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html)"> -<!-- html --> -<meta name="src" content="pgfmanual.tex"> -<meta name="date" content="2005-11-15 18:41:00"> -<link rel="stylesheet" type="text/css" href="pgfmanual.css"> -</head><body -> - <div class="crosslinks"><p class="noindent">[<a -href="pgfmanualse22.html" >next</a>] [<a -href="pgfmanualse20.html" >prev</a>] [<a -href="pgfmanualse20.html#tailpgfmanualse20.html" >prev-tail</a>] [<a -href="#tailpgfmanualse21.html">tail</a>] [<a -href="pgfmanual.html#pgfmanualse21.html" >up</a>] </p></div> - <h3 class="sectionHead"><span class="titlemark">21 </span> <a - id="x22-21500021"></a>Constructing Paths</h3> -<!--l. 10--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.1 </span> <a - id="x22-21600021.1"></a>Overview</h4> -<!--l. 12--><p class="noindent">The “basic entity of drawing” in <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> is the <span -class="cmti-10">path</span>. A path consists of several parts, each of which is either a closed or -open curve. An open curve has a starting point and an end point and, in between, consists of several <span -class="cmti-10">segments</span>, each -of which is either a straight line or a Bézier curve. Here is an example of a path (in red) consisting of two parts, one -open, one closed: -<!--l. 19--><p class="noindent"><div class="obeylines-v"></div><object data="pgfmanual-511.svg" width="336.77493 " height="173.6204 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-434-" ><colgroup id="TBL-434-1g"><col -id="TBL-434-1"></colgroup><tr - valign="baseline" id="TBL-434-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-434-1-1" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}[scale=2]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[thick,red]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (a)</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (ab)</span><span -class="cmtt-8"> (1,.5)</span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (b)</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> ..</span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (bc)</span><span -class="cmtt-8"> controls</span><span -class="cmtt-8"> +(up:1cm)</span><span -class="cmtt-8"> and</span><span -class="cmtt-8"> +(left:1cm)</span><span -class="cmtt-8"> ..</span><span -class="cmtt-8"> (3,1)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (c)</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (0,1)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> (2,1)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> coordinate</span><span -class="cmtt-8"> (x)</span><span -class="cmtt-8"> (1,2)</span><span -class="cmtt-8"> --</span><span -class="cmtt-8"> cycle;</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw</span><span -class="cmtt-8"> (a)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> node[below]</span><span -class="cmtt-8"> {start</span><span -class="cmtt-8"> part</span><span -class="cmtt-8"> 1}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (ab)</span><span -class="cmtt-8"> node[below</span><span -class="cmtt-8"> right]</span><span -class="cmtt-8"> {straight</span><span -class="cmtt-8"> segment}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (b)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> node[right]</span><span -class="cmtt-8"> {end</span><span -class="cmtt-8"> first</span><span -class="cmtt-8"> segment}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (c)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> node[right]</span><span -class="cmtt-8"> {end</span><span -class="cmtt-8"> part</span><span -class="cmtt-8"> 1}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> (x)</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> node[above</span><span -class="cmtt-8"> right]</span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {part</span><span -class="cmtt-8"> 2</span><span -class="cmtt-8"> (closed)};</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table> -</div> -<!--l. 35--><p class="indent"> A path, by itself, has no “effect,” that is, it does not leave any marks on the page. It is just a set of -points on the plane. However, you can <span -class="cmti-10">use </span>a path in different ways. The most natural actions are -<span -class="cmti-10">stroking </span>(also known as <span -class="cmti-10">drawing</span>) and <span -class="cmti-10">filling</span>. Stroking can be imagined as picking up a pen of a certain -diameter and “moving it along the path.” Filling means that everything “inside” the path is filled -with a uniform color. Naturally, the open parts of a path must first be closed before a path can be -filled. -<!--l. 45--><p class="indent"> In <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span>, there are numerous commands for constructing paths, all of which start with <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpath</span></span></span>. There are also -commands for <span -class="cmti-10">using </span>paths, though most operations can be performed by calling <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepath</span></span></span> with an appropriate -parameter. -<!--l. 50--><p class="indent"> As a side-effect, the path construction commands keep track of two bounding boxes. One is the bounding box for -the current path, the other is a bounding box for all paths in the current picture. See Section <a -href="#x22-22800021.13">21.13<!--tex4ht:ref: section-bb --></a> for more -details. -<!--l. 55--><p class="indent"> Each path construction command extends the current path in some way. The “current path” is a global entity -that persists across <span class="TEX">T<span -class="E">E</span>X</span> groups. Thus, between calls to the path construction commands you can -perform arbitrary computations and even open and closed <span class="TEX">T<span -class="E">E</span>X</span> groups. The current path only gets -“flushed” when the <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfusepath</span></span></span> command is called (or when the soft-path subsystem is used directly, see -Section <a -href="pgfmanualse34.html#x35-32300034">34<!--tex4ht:ref: section-soft-paths --></a>). -<!--l. 63--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.2 </span> <a - id="x22-21700021.2"></a>The Move-To Path Operation</h4> -<!--l. 65--><p class="noindent">The most basic operation is the move-to operation. It must be given at the beginning of paths, though some path -construction command (like <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpathrectangle</span></span></span>) generate move-tos implicitly. A move-to operation can also be -used to start a new part of a path. - - -<!--l. 70--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox217"><span -class="cmtt-10">\pgfpathmoveto</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-217001"></a> - <!--l. 71--><p class="noindent">This command expects a <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span>-coordinate like <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpointorigin</span></span></span> as its parameter. When the current - path is empty, this operation will start the path at the given <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span>. If a path has already - been partly constructed, this command will end the current part of the path and start a new - one. - <!--l. 76--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-435-" ><colgroup id="TBL-435-1g"><col -id="TBL-435-1"><col -id="TBL-435-2"></colgroup><tr - valign="baseline" id="TBL-435-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-435-1-1" -class="td11"> <object data="pgfmanual-512.svg" width="115.3439 " height="39.47017 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-435-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{2cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{0.5cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetfillcolor{examplefill}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill,stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 87--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-436-" ><colgroup id="TBL-436-1g"><col -id="TBL-436-1"><col -id="TBL-436-2"></colgroup><tr - valign="baseline" id="TBL-436-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-436-1-1" -class="td11"> <object data="pgfmanual-513.svg" width="115.3439 " height="39.47017 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-436-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{2cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{2cm}{1cm}}</span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> New</span><span -class="cmsltt-10x-x-80"> part</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{0.5cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetfillcolor{examplefill}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill,stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 99--><p class="noindent">The command will apply the current coordinate transformation matrix to <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">> </span>before using - it. - <!--l. 102--><p class="noindent">The command will update the bounding box of the current path and picture, if necessary. </dd></dl> -<!--l. 107--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.3 </span> <a - id="x22-21800021.3"></a>The Line-To Path Operation</h4> -<!--l. 109--><p class="noindent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox218"><span -class="cmtt-10">\pgfpathlineto</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-218001"></a> - <!--l. 110--><p class="noindent">This command extends the current path in a straight line to the given <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span>. If this command is given - at the beginning of path without any other path construction command given before (in particular without a - move-to operation), the <span class="TEX">T<span -class="E">E</span>X</span> file may compile without an error message, but a viewer application may display - an error message when trying to render the picture. - <!--l. 116--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-437-" ><colgroup id="TBL-437-1g"><col -id="TBL-437-1"><col -id="TBL-437-2"></colgroup><tr - valign="baseline" id="TBL-437-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-437-1-1" -class="td11"> <object data="pgfmanual-514.svg" width="77.40703 " height="39.47017 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-437-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{2cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetfillcolor{examplefill}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill,stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - - - <!--l. 125--><p class="noindent">The command will apply the current coordinate transformation matrix to <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">> </span>before using - it. - <!--l. 128--><p class="noindent">The command will update the bounding box of the current path and picture, if necessary. </dd></dl> -<!--l. 133--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.4 </span> <a - id="x22-21900021.4"></a>The Curve-To Path Operation</h4> -<!--l. 135--><p class="noindent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox219"><span -class="cmtt-10">\pgfpathcurveto</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">support 1</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">support 2</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-219001"></a> - <!--l. 136--><p class="noindent">This command extends the current path with a Bézier curve from the last point of the path to - <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span>. The <span -class="cmsy-10"><</span><span -class="cmti-10">support 1</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">support 2</span><span -class="cmsy-10">> </span>are the first and second support point of the Bézier - curve. For more information on Bézier curve, please consult a standard textbook on computer graphics. - <!--l. 142--><p class="noindent">Like the line-to command, this command may not be the first path construction command in a - path. - <!--l. 144--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-438-" ><colgroup id="TBL-438-1g"><col -id="TBL-438-1"><col -id="TBL-438-2"></colgroup><tr - valign="baseline" id="TBL-438-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-438-1-1" -class="td11"> <object data="pgfmanual-515.svg" width="115.3439 " height="39.47017 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-438-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathcurveto</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{1cm}{1cm}}{\pgfpoint{2cm}{1cm}}{\pgfpoint{3cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetfillcolor{examplefill}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill,stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 153--><p class="noindent">The command will apply the current coordinate transformation matrix to <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">> </span>before using - it. - <!--l. 156--><p class="noindent">The command will update the bounding box of the current path and picture, if necessary. However, the - bounding box is simply made large enough such that it encompasses all of the support points and - the <span -class="cmsy-10"><</span><span -class="cmti-10">coordinate</span><span -class="cmsy-10">></span>. This will guarantee that the curve is completely inside the bounding box, but - the bounding box will typically be quite a bit too large. It is not clear (to me) how this can be - avoided without resorting to “some serious math” in order to calculate a precise bounding box. - </dd></dl> -<!--l. 167--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.5 </span> <a - id="x22-22000021.5"></a>The Close Path Operation</h4> -<!--l. 169--><p class="noindent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox220"><span -class="cmtt-10">\pgfpathclose</span></span> </dt><dd -class="description"> -<a - id="dx22-220001"></a> - <!--l. 170--><p class="noindent">This command closes the current part of the path by appending a straight line to the start point of the current - part. Note that there <span -class="cmti-10">is </span>a difference between closing a path and using the line-to operation to add a straight - line to the start of the current path. The difference is demonstrated by the upper corners of the triangles in - the following example: - - - <!--l. 176--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-439-" ><colgroup id="TBL-439-1g"><col -id="TBL-439-1"><col -id="TBL-439-2"></colgroup><tr - valign="baseline" id="TBL-439-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-439-1-1" -class="td11"> <object data="pgfmanual-516.svg" width="118.27718 " height="118.27718 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-439-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{5pt}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{0cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{1cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathclose</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{2.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{1.5cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{2.5cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{2.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> -<!--l. 194--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.6 </span> <a - id="x22-22100021.6"></a>Arc, Ellipse and Circle Path Operations</h4> -<!--l. 196--><p class="noindent">The path construction commands that we have discussed up to now are sufficient to create all paths that can be -created “at all.” However, it is useful to have special commands to create certain shapes, like circles, that arise often -in practice. -<!--l. 201--><p class="indent"> In the following, the commands for adding (parts of) (transformed) circles to a path are described. -<!--l. 205--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox221"><span -class="cmtt-10">\pgfpatharc</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">start angle</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end angle</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-221001"></a> - <!--l. 206--><p class="noindent">This command appends a part of a circle (or an ellipse) to the current path. Imaging the curve between - <span -class="cmsy-10"><</span><span -class="cmti-10">start angle</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">end angle</span><span -class="cmsy-10">> </span>on a circle of radius <span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">> </span>(if <span -class="cmsy-10"><</span><span -class="cmti-10">start angle</span><span -class="cmsy-10">> </span><span -class="cmmi-10">< </span><span -class="cmsy-10"><</span><span -class="cmti-10">end angle</span><span -class="cmsy-10">></span>, the curve - goes around the circle counterclockwise, otherwise clockwise). This curve is now moved such that the - point where the curve starts is the previous last point of the path. Note that this command will <span -class="cmti-10">not</span> - start a new part of the path, which is important for example for filling purposes. - <!--l. 215--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-440-" ><colgroup id="TBL-440-1g"><col -id="TBL-440-1"><col -id="TBL-440-2"></colgroup><tr - valign="baseline" id="TBL-440-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-440-1-1" -class="td11"> <object data="pgfmanual-517.svg" width="133.91231 " height="77.14032 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-440-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{0cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{90}{.5cm}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{1.5cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{90}{-45}{.5cm}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 227--><p class="noindent">Saying <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpatharc{0}{360}{1cm}</span></span></span> “nearly” gives you a full circle. The “nearly” refers to the fact that the - circle will not be closed. You can close it using <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpathclose</span></span></span>. - <!--l. 231--><p class="noindent">The <span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">> </span>need not always be a single <span class="TEX">T<span -class="E">E</span>X</span> dimension. Instead, it can also contain a slash, - in which case it must consist of two dimensions separated by this slash. In this case the first - dimension is the <span -class="cmmi-10">x</span>-radius and the second the <span -class="cmmi-10">y</span>-radius of the ellipse from which the curve is - taken: - - - <!--l. 237--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-441-" ><colgroup id="TBL-441-1g"><col -id="TBL-441-1"><col -id="TBL-441-2"></colgroup><tr - valign="baseline" id="TBL-441-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-441-1-1" -class="td11"> <object data="pgfmanual-518.svg" width="131.05789 " height="77.27367 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-441-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{45}{2cm/1cm}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 246--><p class="noindent">The axes of the circle or ellipse from which the arc is “taken” always point up and right. However, the current - coordinate transformation matrix will have an effect on the arc. This can be used to, say, rotate an - arc: - <!--l. 251--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-442-" ><colgroup id="TBL-442-1g"><col -id="TBL-442-1"><col -id="TBL-442-2"></colgroup><tr - valign="baseline" id="TBL-442-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-442-1-1" -class="td11"> <object data="pgfmanual-519.svg" width="125.73721 " height="89.52711 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-442-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgftransformrotate{30}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpatharc{180}{45}{2cm/1cm}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 261--><p class="noindent">The command will update the bounding box of the current path and picture, if necessary. Unless rotation or - shearing transformations are applied, the bounding box will be tight. </dd></dl> -<!--l. 267--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox222"><span -class="cmtt-10">\pgfpathellipse</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">center</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">first axis</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">second axis</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-221002"></a> - <!--l. 268--><p class="noindent">The effect of this command is to append an ellipse to the current path (if the path is not empty, a - new part is started). The ellipse’s center will be <span -class="cmsy-10"><</span><span -class="cmti-10">center</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">first axis</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">second axis</span><span -class="cmsy-10">> </span>are the - axis <span -class="cmti-10">vectors</span>. The same effect as this command can also be achieved using an appropriate sequence of - move-to, arc, and close operations, but this command is easier and faster. - <!--l. 276--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-443-" ><colgroup id="TBL-443-1g"><col -id="TBL-443-1"><col -id="TBL-443-2"></colgroup><tr - valign="baseline" id="TBL-443-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-443-1-1" -class="td11"> <object data="pgfmanual-520.svg" width="134.17896 " height="125.73784 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-443-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathellipse{\pgfpoint{1cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{1.5cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{0cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \color{red}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathellipse{\pgfpoint{1cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{-0.5cm}{0.5cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 291--><p class="noindent">The command will apply coordinate transformations to all coordinates of the ellipse. However, the coordinate - - - transformations are applied only after the ellipse is “finished conceptually.” Thus, a transformation of 1cm to - the right will simply shift the ellipse one centimeter to the right; it will not add 1cm to the <span -class="cmmi-10">x</span>-coordinates of - the two axis vectors. - <!--l. 298--><p class="noindent">The command will update the bounding box of the current path and picture, if necessary. </dd></dl> -<!--l. 302--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox223"><span -class="cmtt-10">\pgfpathcirlce</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">center</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-221003"></a> - <!--l. 303--><p class="noindent">A shorthand for <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpathellipse</span></span></span> applied to <span -class="cmsy-10"><</span><span -class="cmti-10">center</span><span -class="cmsy-10">> </span>and the two axis vectors (<span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">></span><span -class="cmmi-10">,</span>0) and - (0<span -class="cmmi-10">,</span><span -class="cmsy-10"><</span><span -class="cmti-10">radius</span><span -class="cmsy-10">></span>). </dd></dl> -<!--l. 308--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.7 </span> <a - id="x22-22200021.7"></a>Rectangle Path Operations</h4> -<!--l. 310--><p class="noindent">Another shape that arises frequently is the rectangle. Two commands can be used to add a rectangle to the current -path. Both commands will start a new part of the path. -<!--l. 315--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox224"><span -class="cmtt-10">\pgfpathrectangle</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">corner</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">diagonal vector</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-222001"></a> - <!--l. 316--><p class="noindent">Adds a rectangle to the path whose one corner is <span -class="cmsy-10"><</span><span -class="cmti-10">corner</span><span -class="cmsy-10">> </span>and whose opposite corner is given by - <span -class="cmsy-10"><</span><span -class="cmti-10">corner</span><span -class="cmsy-10">> </span>+ <span -class="cmsy-10"><</span><span -class="cmti-10">diagonal vector</span><span -class="cmsy-10">></span>. - <!--l. 320--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-444-" ><colgroup id="TBL-444-1g"><col -id="TBL-444-1"><col -id="TBL-444-2"></colgroup><tr - valign="baseline" id="TBL-444-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-444-1-1" -class="td11"> <object data="pgfmanual-521.svg" width="134.17897 " height="77.27367 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-444-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathrectangle{\pgfpoint{1cm}{0cm}}{\pgfpoint{1.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathrectangle{\pgfpoint{1.5cm}{0.25cm}}{\pgfpoint{1.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathrectangle{\pgfpoint{2cm}{0.5cm}}{\pgfpoint{1.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 329--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes tightly. - </dd></dl> -<!--l. 334--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox225"><span -class="cmtt-10">\pgfpathrectanglecorners</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">corner</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">opposite corner</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-222002"></a> - <!--l. 335--><p class="noindent">Adds a rectangle to the path whose two opposing corners are <span -class="cmsy-10"><</span><span -class="cmti-10">corner</span><span -class="cmsy-10">> </span>and <span -class="cmsy-10"><</span><span -class="cmti-10">opposite corner</span><span -class="cmsy-10">></span>. - <!--l. 337--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-445-" ><colgroup id="TBL-445-1g"><col -id="TBL-445-1"><col -id="TBL-445-2"></colgroup><tr - valign="baseline" id="TBL-445-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-445-1-1" -class="td11"> <object data="pgfmanual-522.svg" width="115.07718 " height="77.27367 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-445-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathrectanglecorners{\pgfpoint{1cm}{0cm}}{\pgfpoint{1.5cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{draw}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 344--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes tightly. - </dd></dl> - - -<!--l. 350--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.8 </span> <a - id="x22-22300021.8"></a>The Grid Path Operation</h4> -<!--l. 352--><p class="noindent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox226"><span -class="cmtt-10">\pgfpathgrid</span><span -class="cmtt-10">[</span><span -class="cmsy-10"><</span><span -class="cmti-10">options</span><span -class="cmsy-10">></span><span -class="cmtt-10">]{</span><span -class="cmsy-10"><</span><span -class="cmti-10">lower left</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">upper right</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-223001"></a> - <!--l. 353--><p class="noindent">Appends a grid to the current path. That is, a (possibly large) number of parts are added to the path, - each part consisting of a single horizontal or vertical straight line segment. - <!--l. 357--><p class="noindent">Conceptually, the origin is part of the grid and the grid is clipped to the rectangle specified by the - <span -class="cmsy-10"><</span><span -class="cmti-10">lower left</span><span -class="cmsy-10">> </span>and the <span -class="cmsy-10"><</span><span -class="cmti-10">upper right</span><span -class="cmsy-10">> </span>corner. However, no clipping occurs (this command just adds parts to - the current path). Rather, the points where the lines enter and leave the “clipping area” are computed - and used to add simple lines to the current path. - <!--l. 364--><p class="noindent">Allowed <span -class="cmsy-10"><</span><span -class="cmti-10">options</span><span -class="cmsy-10">> </span>are: - <ul class="itemize1"> - <li class="itemize"><span -class="cmtt-10">stepx</span><a - id="dx22-223002"></a><a - id="dx22-223003"></a><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">=</span></span></span><span -class="cmsy-10"><</span><span -class="cmti-10">dimension</span><span -class="cmsy-10">> </span>Sets the horizontal stepping to <span -class="cmsy-10"><</span><span -class="cmti-10">dimension</span><span -class="cmsy-10">></span>. Default is 1cm. - </li> - <li class="itemize"><span -class="cmtt-10">stepy</span><a - id="dx22-223004"></a><a - id="dx22-223005"></a><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">=</span></span></span><span -class="cmsy-10"><</span><span -class="cmti-10">dimension</span><span -class="cmsy-10">> </span>Sets the vertical stepping to <span -class="cmsy-10"><</span><span -class="cmti-10">dimension</span><span -class="cmsy-10">></span>. Default is 1cm. - </li> - <li class="itemize"><span -class="cmtt-10">step</span><a - id="dx22-223006"></a><a - id="dx22-223007"></a><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">=</span></span></span><span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">> </span>Sets the horizontal stepping to the <span -class="cmmi-10">x</span>-coordinate of <span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">> </span>and the vertical stepping - to its <span -class="cmmi-10">y</span>-coordinate.</li></ul> - <!--l. 374--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-446-" ><colgroup id="TBL-446-1g"><col -id="TBL-446-1"><col -id="TBL-446-2"></colgroup><tr - valign="baseline" id="TBL-446-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-446-1-1" -class="td11"> <object data="pgfmanual-523.svg" width="138.63931 " height="100.70245 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-446-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{0.8pt}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathgrid[step={\pgfpoint{1cm}{1cm}}]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{-3mm}{-3mm}}{\pgfpoint{33mm}{23mm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetlinewidth{0.4pt}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathgrid[stepx=1mm,stepy=1mm]</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{-1.5mm}{-1.5mm}}{\pgfpoint{31.5mm}{21.5mm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 386--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes tightly. As for ellipses, - the transformations are applied to the “conceptually finished” grid. - <!--l. 389--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"> -<table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-447-" ><colgroup id="TBL-447-1g"><col -id="TBL-447-1"><col -id="TBL-447-2"></colgroup><tr - valign="baseline" id="TBL-447-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-447-1-1" -class="td11"> <object data="pgfmanual-524.svg" width="133.37686 " height="133.37686 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-447-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgftransformrotate{10}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathgrid[stepx=1mm,stepy=2mm]{\pgfpoint{0mm}{0mm}}{\pgfpoint{30mm}{30mm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - </dd></dl> - - -<!--l. 399--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.9 </span> <a - id="x22-22400021.9"></a>The Parabola Path Operation</h4> -<!--l. 401--><p class="noindent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox227"><span -class="cmtt-10">\pgfpathparabola</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">bend vector</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">end vector</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-224001"></a> - <!--l. 402--><p class="noindent">This command appends two half-parabolas to the current path. The first starts at the current point - and ends at the current point plus <span -class="cmsy-10"><</span><span -class="cmti-10">bend vector</span><span -class="cmsy-10">></span>. At his point, it has its bend. The second half parabola - starts at that bend point and end at point that is given by the bend plus <span -class="cmsy-10"><</span><span -class="cmti-10">end vector</span><span -class="cmsy-10">></span>. - <!--l. 408--><p class="noindent">If you set <span -class="cmsy-10"><</span><span -class="cmti-10">end vector</span><span -class="cmsy-10">> </span>to the null vector, you append only a half parabola that goes from the current - point to the bend; by setting <span -class="cmsy-10"><</span><span -class="cmti-10">bend vector</span><span -class="cmsy-10">> </span>to the null vector, you append only a half parabola that - goes to current point plus <span -class="cmsy-10"><</span><span -class="cmti-10">end vector</span><span -class="cmsy-10">> </span>and has its bend at the current point. - <!--l. 414--><p class="noindent">It is not possible to use this command to draw a part of a parabola that does not contain the bend. - <!--l. 417--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-448-" ><colgroup id="TBL-448-1g"><col -id="TBL-448-1"><col -id="TBL-448-2"></colgroup><tr - valign="baseline" id="TBL-448-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-448-1-1" -class="td11"> <object data="pgfmanual-525.svg" width="153.28075 " height="191.21764 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-448-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> Half-parabola</span><span -class="cmsltt-10x-x-80"> going</span><span -class="cmsltt-10x-x-80"> ``up</span><span -class="cmsltt-10x-x-80"> and</span><span -class="cmsltt-10x-x-80"> right''</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathparabola{\pgfpointorigin}{\pgfpoint{2cm}{4cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \color{red}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> Half-parabola</span><span -class="cmsltt-10x-x-80"> going</span><span -class="cmsltt-10x-x-80"> ``down</span><span -class="cmsltt-10x-x-80"> and</span><span -class="cmsltt-10x-x-80"> right''</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathparabola{\pgfpoint{-2cm}{4cm}}{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \color{blue}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> Full</span><span -class="cmsltt-10x-x-80"> parabola</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{-2cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathparabola{\pgfpoint{1cm}{-1cm}}{\pgfpoint{2cm}{4cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \color{orange}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 438--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes. </dd></dl> -<!--l. 443--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.10 </span> <a - id="x22-22500021.10"></a>Sine and Cosine Path Operations</h4> -<!--l. 445--><p class="noindent">Sine and cosine curves often need to be drawn and the following commands may help with this. However, they only -allow you to append sine and cosine curves in intervals that are multiples of <span -class="cmmi-10"><img -src="cmmi10-19.png" alt="p" class="10x-x-19" />/</span>2. -<!--l. 449--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox228"><span -class="cmtt-10">\pgfpathsine</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-225001"></a> - <!--l. 450--><p class="noindent">This command appends a sine curve in the interval [0<span -class="cmmi-10">,<img -src="cmmi10-19.png" alt="p" class="10x-x-19" />/</span>2] to the current path. The sine curve is squeezed or - stretched such that the curve starts at the current point and ends at the current point plus - <span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">></span>. - - - <!--l. 454--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-449-" ><colgroup id="TBL-449-1g"><col -id="TBL-449-1"><col -id="TBL-449-2"></colgroup><tr - valign="baseline" id="TBL-449-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-449-1-1" -class="td11"> <object data="pgfmanual-526.svg" width="153.14738 " height="115.34387 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-449-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,1);</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{1cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathsine{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \color{red}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{1cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathsine{\pgfpoint{-2cm}{-2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 467--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes. </dd></dl> -<!--l. 471--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox229"><span -class="cmtt-10">\pgfpathcosine</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-225002"></a> - <!--l. 472--><p class="noindent">This command appends a cosine curve in the interval [0<span -class="cmmi-10">,<img -src="cmmi10-19.png" alt="p" class="10x-x-19" />/</span>2] to the current path. The curve is squeezed or - stretched such that the curve starts at the current point and ends at the current point plus <span -class="cmsy-10"><</span><span -class="cmti-10">vector</span><span -class="cmsy-10">></span>. Using - several sine and cosine operations in sequence allows you to produce a complete sine or cosine - curve - <!--l. 477--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-450-" ><colgroup id="TBL-450-1g"><col -id="TBL-450-1"><col -id="TBL-450-2"></colgroup><tr - valign="baseline" id="TBL-450-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-450-1-1" -class="td11"> <object data="pgfmanual-527.svg" width="153.2807 " height="77.40701 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-450-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpoint{0cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathsine{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathcosine{\pgfpoint{1cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathsine{\pgfpoint{1cm}{-1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathcosine{\pgfpoint{1cm}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetfillcolor{examplefill}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{fill,stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 488--><p class="noindent">The command will apply coordinate transformations and update the bounding boxes. </dd></dl> -<!--l. 493--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.11 </span> <a - id="x22-22600021.11"></a>Plot Path Operations</h4> -<!--l. 495--><p class="noindent">There exist several commands for appending plots to a path. These commands are available through the package -<span class="obeylines-h"><span class="verb"><span -class="cmtt-10">pgfbaseplot</span></span></span>. They are documented in Section <a -href="pgfmanualse29.html#x30-29000029">29<!--tex4ht:ref: section-plots --></a>. -<!--l. 501--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.12 </span> <a - id="x22-22700021.12"></a>Rounded Corners</h4> -<!--l. 503--><p class="noindent">Normally, when you connect two straight line segments or when you connect two curves that end and start “at -different angles” you get “sharp corners” between the lines or curves. In some cases it is desirable to produce -“rounded corners” instead. Thus, the lines or curves should be shortened a bit and then connected by -arcs. -<!--l. 509--><p class="indent"> <span -class="cmcsc-10"><small -class="small-caps">P</small><small -class="small-caps">G</small><small -class="small-caps">F</small></span> offers an easy way to achieve this effect, by calling the following two commands. -<!--l. 512--><p class="indent"> - - - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox230"><span -class="cmtt-10">\pgfsetcornersarced</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">point</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-227001"></a> - <!--l. 513--><p class="noindent">This command causes all subsequent corners to be replaced by little arcs. The effect of this command - lasts till the end of the current <span class="TEX">T<span -class="E">E</span>X</span> scope. - <!--l. 517--><p class="noindent">The <span -class="cmsy-10"><</span><span -class="cmti-10">point</span><span -class="cmsy-10">> </span>dictates how large the corner arc will be. Consider a corner made by two lines <span -class="cmmi-10">l </span>and <span -class="cmmi-10">r</span> - and assume that the line <span -class="cmmi-10">l </span>comes first on the path. The <span -class="cmmi-10">x</span>-dimension of the <span -class="cmsy-10"><</span><span -class="cmti-10">point</span><span -class="cmsy-10">> </span>decides by how - much the line <span -class="cmmi-10">l </span>will be shortened, the <span -class="cmmi-10">y</span>-dimension of <span -class="cmsy-10"><</span><span -class="cmti-10">point</span><span -class="cmsy-10">> </span>decides by how much the line <span -class="cmmi-10">r </span>will be - shortened. Then, the shortened lines are connected by an arc. - <!--l. 524--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-451-" ><colgroup id="TBL-451-1g"><col -id="TBL-451-1"><col -id="TBL-451-2"></colgroup><tr - valign="baseline" id="TBL-451-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-451-1-1" -class="td11"> <object data="pgfmanual-528.svg" width="115.3439 " height="77.40703 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-451-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetcornersarced{\pgfpoint{5mm}{5mm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathrectanglecorners{\pgfpointorigin}{\pgfpoint{3cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 534--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-452-" ><colgroup id="TBL-452-1g"><col -id="TBL-452-1"><col -id="TBL-452-2"></colgroup><tr - valign="baseline" id="TBL-452-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-452-1-1" -class="td11"> <object data="pgfmanual-529.svg" width="115.3439 " height="77.40703 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-452-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{tikzpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \draw[help</span><span -class="cmtt-8"> lines]</span><span -class="cmtt-8"> (0,0)</span><span -class="cmtt-8"> grid</span><span -class="cmtt-8"> (3,2);</span> -<br> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetcornersarced{\pgfpoint{10mm}{5mm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> 10mm</span><span -class="cmsltt-10x-x-80"> entering,</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmsltt-10x-x-80">%</span><span -class="cmsltt-10x-x-80"> 5mm</span><span -class="cmsltt-10x-x-80"> leaving.</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointorigin}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{0cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpoint{3cm}{2cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathcurveto</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{3cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{2cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> </span><span -class="cmtt-8"> {\pgfpoint{1cm}{0cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{tikzpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - <!--l. 552--><p class="noindent">If the <span -class="cmmi-10">x</span>- and <span -class="cmmi-10">y</span>-coordinates of <span -class="cmsy-10"><</span><span -class="cmti-10">point</span><span -class="cmsy-10">> </span>are the same and the corner is a right angle, you will get a perfect - quarter circle (well, not quite perfect, but perfect up to six decimals). When the angle is not 90<sup ><span -class="cmsy-7"><span class="htf-cmbx">o</span></span></sup>, you only get - a fair approximation. - <!--l. 557--><p class="noindent">More or less “all” corners will be rounded, even the corner generated by a <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfpathclose</span></span></span> command. (The - author is a bit proud of this feature.) - <!--l. 561--><p class="noindent"><div class="obeylines-v"></div><!--tex4ht:inline--><div class="tabular"><table class="tabular" -cellspacing="0" cellpadding="0" -frame="void" id="TBL-453-" ><colgroup id="TBL-453-1g"><col -id="TBL-453-1"><col -id="TBL-453-2"></colgroup><tr - valign="baseline" id="TBL-453-1-"><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-453-1-1" -class="td11"> <object data="pgfmanual-530.svg" width="70.16187 " height="73.69295 " type="image/svg+xml"><p>SVG-Viewer needed.</p></object> </td><td align="left" style="white-space:nowrap; text-align:left;" id="TBL-453-1-2" -class="td11"> <table class="minipage"><tr><td><div class="obeylines-v"> -<br><span -class="cmtt-8">\begin{pgfpicture}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathmoveto{\pgfpointpolar{0}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpointpolar{72}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpointpolar{144}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpointpolar{216}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathlineto{\pgfpointpolar{288}{1cm}}</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfpathclose</span> -<br><span -class="cmtt-8"> </span><span -class="cmtt-8"> \pgfusepath{stroke}</span> -<br><span -class="cmtt-8">\end{pgfpicture}</span></div> </td></tr></table> </td> -</tr></table></div> - - - <!--l. 574--><p class="noindent">To return to normal (unrounded) corners, use <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\pgfsetcornersarced{\pgfpointorigin}</span></span></span>. - <!--l. 577--><p class="noindent">Note that the rounding will produce strange and undesirable effects if the lines at the corners are too short. In - this case the shortening may cause the lines to “suddenly extend over the other end” which is rarely desirable. - </dd></dl> -<!--l. 586--><p class="noindent"> - <h4 class="subsectionHead"><span class="titlemark">21.13 </span> <a - id="x22-22800021.13"></a>Internal Tracking of Bounding Boxes for Paths and Pictures</h4> -<!--l. 592--><p class="noindent">The path construction commands keep track of two bounding boxes: One for the current path, which is reset -whenever the path is used and thereby flushed, and a bounding box for the current <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">{pgfpicture}</span></span></span>. -<!--l. 596--><p class="indent"> The bounding boxes are not accessible by “normal” macros. Rather, two sets of four dimension variables are -used for this, all of which contain the letter <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">@</span></span></span>. -<!--l. 600--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox231"><span -class="cmtt-10">\pgf@pathminx</span></span> </dt><dd -class="description"> -<a - id="dx22-228001"></a> - <!--l. 601--><p class="noindent">The minimum <span -class="cmmi-10">x</span>-coordinate “mentioned” in the current path. Initially, this is set to 16000pt. </dd></dl> -<!--l. 605--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox232"><span -class="cmtt-10">\pgf@pathmaxx</span></span> </dt><dd -class="description"> -<a - id="dx22-228002"></a> - <!--l. 606--><p class="noindent">The maximum <span -class="cmmi-10">x</span>-coordinate “mentioned” in the current path. Initially, this is set to <span -class="cmsy-10">-</span>16000pt. </dd></dl> -<!--l. 610--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox233"><span -class="cmtt-10">\pgf@pathminy</span></span> </dt><dd -class="description"> -<a - id="dx22-228003"></a> - <!--l. 611--><p class="noindent">The minimum <span -class="cmmi-10">y</span>-coordinate “mentioned” in the current path. Initially, this is set to 16000pt. </dd></dl> -<!--l. 615--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox234"><span -class="cmtt-10">\pgf@pathmaxy</span></span> </dt><dd -class="description"> -<a - id="dx22-228004"></a> - <!--l. 616--><p class="noindent">The maximum <span -class="cmmi-10">y</span>-coordinate “mentioned” in the current path. Initially, this is set to <span -class="cmsy-10">-</span>16000pt. </dd></dl> -<!--l. 620--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox235"><span -class="cmtt-10">\pgf@picminx</span></span> </dt><dd -class="description"> -<a - id="dx22-228005"></a> - <!--l. 621--><p class="noindent">The minimum <span -class="cmmi-10">x</span>-coordinate “mentioned” in the current picture. Initially, this is set to 16000pt. </dd></dl> -<!--l. 625--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox236"><span -class="cmtt-10">\pgf@picmaxx</span></span> </dt><dd -class="description"> -<a - id="dx22-228006"></a> - <!--l. 626--><p class="noindent">The maximum <span -class="cmmi-10">x</span>-coordinate “mentioned” in the current picture. Initially, this is set to <span -class="cmsy-10">-</span>16000pt. </dd></dl> -<!--l. 630--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox237"><span -class="cmtt-10">\pgf@picminy</span></span> </dt><dd -class="description"> -<a - id="dx22-228007"></a> - <!--l. 631--><p class="noindent">The minimum <span -class="cmmi-10">y</span>-coordinate “mentioned” in the current picture. Initially, this is set to 16000pt. </dd></dl> - - -<!--l. 635--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox238"><span -class="cmtt-10">\pgf@picmaxy</span></span> </dt><dd -class="description"> -<a - id="dx22-228008"></a> - <!--l. 636--><p class="noindent">The maximum <span -class="cmmi-10">y</span>-coordinate “mentioned” in the current picture. Initially, this is set to <span -class="cmsy-10">-</span>16000pt. </dd></dl> -<!--l. 641--><p class="indent"> Each time a path construction command is called, the above variables are (globally) updated. To facilitate this, -you can use the following command: -<!--l. 645--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox239"><span -class="cmtt-10">\pgf@protocolsizes</span><span -class="cmtt-10">{</span><span -class="cmsy-10"><</span><span -class="cmti-10">x-dimension</span><span -class="cmsy-10">></span><span -class="cmtt-10">}{</span><span -class="cmsy-10"><</span><span -class="cmti-10">y-dimension</span><span -class="cmsy-10">></span><span -class="cmtt-10">}</span></span> </dt><dd -class="description"> -<a - id="dx22-228009"></a> - <!--l. 646--><p class="noindent">Updates all of the above dimension in such a way that the point specified by the two arguments - is inside both bounding boxes. For the picture’s bounding box this updating occurs only if - <span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\ifpgf@relevantforpicturesize</span></span></span> is true, see below. </dd></dl> -<!--l. 652--><p class="indent"> For the bounding box of the picture it is not always desirable that every path construction command affects this -bounding box. For example, if you have just used a clip command, you do not want anything outside the clipping -area to affect the bounding box. For this reason, there exists a special “<span class="TEX">T<span -class="E">E</span>X</span> if” that (locally) decides whether -updating should be applied to the picture’s bounding box. Clipping will set this if to false, as will certain other -commands. -<!--l. 660--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox240"><span -class="cmtt-10">\pgf@relevantforpicturesizefalse</span></span> </dt><dd -class="description"> -<a - id="dx22-228010"></a> - <!--l. 661--><p class="noindent">Suppresses updating of the picture’s bounding box. </dd></dl> -<!--l. 664--><p class="indent"> - <dl class="description"><dt class="description"> -<span -class="colorbox" id="colorbox241"><span -class="cmtt-10">\pgf@relevantforpicturesizetrue</span></span> </dt><dd -class="description"> -<a - id="dx22-228011"></a> - <!--l. 665--><p class="noindent">Causes updating of the picture’s bounding box. </dd></dl> - - - - - - - <div class="crosslinks"><p class="noindent">[<a -href="pgfmanualse22.html" >next</a>] [<a -href="pgfmanualse20.html" >prev</a>] [<a -href="pgfmanualse20.html#tailpgfmanualse20.html" >prev-tail</a>] [<a -href="pgfmanualse21.html" >front</a>] [<a -href="pgfmanual.html#pgfmanualse21.html" >up</a>] </p></div> -<!--l. 8--><p class="indent"> <a - id="tailpgfmanualse21.html"></a> -</body></html> |