summaryrefslogtreecommitdiff
path: root/html/en
diff options
context:
space:
mode:
Diffstat (limited to 'html/en')
-rw-r--r--html/en/func/polygon.html85
1 files changed, 58 insertions, 27 deletions
diff --git a/html/en/func/polygon.html b/html/en/func/polygon.html
index 4ab5834..3a0b9c0 100644
--- a/html/en/func/polygon.html
+++ b/html/en/func/polygon.html
@@ -1,16 +1,11 @@
<!doctype HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Polygons</title>
<link rel="stylesheet" type="text/css" href="../../style.css">
-<style type="text/css">
-.style1 {
- font-family: Courier;
-}
-</style>
</head>
<body>
@@ -66,6 +61,10 @@ canvas:Begin(mode: number) [in Lua]</pre>
<strong>cdChord, Filled</strong></font> <font><strong>Polygons</strong></font>
and <font><strong>cdText</strong></font> will be composed in a
region for clipping. See <a href="region.html">Regions</a> documentation.</li>
+ <li><strong>CD_PATH</strong>: creates a path composed of several primitives
+ that can be line draw, filled or used as clipping. Must call <strong>
+ cdCanvasPathSet</strong> to configure the action between sequences of
+ <strong>cdCanvasVertex</strong>.</li>
</ul>
<p align="center"><font size="4">Open, Closed and Filled Polygons<br>
</font><img src="../../img/polygon.gif" border="2" width="249" height="116"></p>
@@ -87,31 +86,63 @@ canvas:End() [in Lua]</pre>
<p>Ends the polygon's definition and draws it.</p>
-<p>&nbsp;</p>
-&quot;<span class="style1"><strong>PATH</strong></span>&quot;:&nbsp;allows to create
- a complex path using CD primitives and then fill, stroke or clip using the
- new path. Must be used with the following parameters:<ul>
- <li>&quot;BEGIN&quot; - creates a new empty path, must be the first call</li>
- <li>cdCanvasPixel, cdCanvasLine, cdCanvasArc - add elements to the path
- instead of drawing to the canvas</li>
- <li>&quot;FILL&quot; - closes the path, and fills it with the current fill attributes,
- then the path is discarded</li>
- <li>&quot;STROKE&quot; - strokes the path with the current line attributes, then the
- path is discarded</li>
- <li>&quot;CLOSESTROKE&quot; - closes the path, and strokes it with the current line
- attributes, then the path is discarded</li>
- <li>&quot;FILLSTROKE&quot; - closes the path, and fills it with the current fill
+<pre class="function"><span class="mainFunction">void <a name="cdEnd0">cdCanvasPathSet</a>(cdCanvas* canvas, int action); [in C]</span>
+
+canvas:PathSet(action: number) [in Lua]</pre>
+
+ <p>Configures the action between sequences of <strong>cdCanvasVertex</strong>.
+ <strong>action</strong> can be:</p>
+<ul>
+ <li>&nbsp;CD_PATH_NEW - creates a new empty path. Useful if more than one
+ path is configured. <strong>cdCanvasBegin</strong>(CD_PATH) already creates
+ a new path.</li>
+ <li>CD_PATH_MOVETO - moves the current position to the given coordinates.
+ Must be followed by 1 call to <strong>cdCanvasVertex</strong>, <strong>
+ cdfCanvasVertex</strong>, or <strong>wdCanvasVertex</strong>.</li>
+ <li>CD_PATH_LINETO - adds a line to the path from the current position to
+ the given coordinates. The current position is updated to the&nbsp; given
+ coordinates. If there is no current position, nothing is connected and only
+ the current position is updated. Must be followed by 1 call to <strong>
+ cdCanvasVertex</strong>, <strong>cdfCanvasVertex</strong>, or <strong>
+ wdCanvasVertex</strong>.</li>
+ <li>CD_PATH_ARC - adds an arc to the path. If there is a current position
+ adds also a line from the current position to the start of the arc. The end
+ of the arc becomes the current position. Must be followed by 3 calls to
+ <strong>cdCanvasVertex</strong>, <strong>cdfCanvasVertex</strong>, or
+ <strong>wdCanvasVertex</strong>. One for the center of the arc (xc,yc), one
+ for the bounding rectangle size (w,h), and one for the start and end angles
+ (angle1,angle2). Angles are in degrees. When using integer coordinates
+ angles must be multiplied by 1000.</li>
+ <li>CD_PATH_CURVETO - adds a bezier curve to the path. If there is no
+ current position, the first point will be used twice. The end point becomes
+ the current position. Must be followed by 3 calls to <strong>cdCanvasVertex</strong>,
+ <strong>cdfCanvasVertex</strong>, or <strong>wdCanvasVertex</strong>. Must
+ be first control point (x1,y1) + second control point (x2,y2) + end point
+ (x3,y3).</li>
+ <li>CD_PATH_CLOSE - adds a line to the path that connects the last point
+ with the first point of the path, closing it.</li>
+ <li>CD_PATH_FILL - fills the path with the current fill attributes,
+ then the path is discarded.</li>
+ <li>CD_PATH_STROKE - strokes the path with the current line attributes, then the
+ path is discarded.</li>
+ <li>CD_PATH_FILLSTROKE - fills the path with the current fill
attributes, strokes the path with the current line attributes, then the path
- is discarded</li>
- <li>&quot;CLIP&quot; - closes the path, and use it as a clipping area to be
- intersected with the current clipping area, then the path is discarded</li>
- <li>&quot;NULL&quot; - discards the path and ends the process without any output.</li>
- <li>ARC - If there is a current point an additional straight line is drawn
- from the current point to the starting point of the arc. The endpoint of the
- arc becomes the new current point. </li>
+ is discarded.</li>
+ <li>CD_PATH_CLIP - use the path as a clipping area to be
+ intersected with the current clipping area, then the path is discarded.</li>
</ul>
+<p>So the normal path creation to draw a line will do:</p>
+<pre>cdCanvasBegin(canvas, CD_PATH);
+cdCanvasPathSet(canvas, CD_PATH_MOVETO);
+cdCanvasVertex(canvas, x1, y1);
+cdCanvasPathSet(canvas, CD_PATH_LINETO);
+cdCanvasVertex(canvas, x2, y2);
+cdCanvasPathSet(canvas, CD_PATH_STROKE);
+cdCanvasEnd(canvas);</pre>
+
+
</body>
</html>