File: language.html

package info (click to toggle)
xeukleides 0.9.0-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 692 kB
  • ctags: 655
  • sloc: ansic: 3,704; yacc: 1,434; lex: 894; makefile: 178
file content (528 lines) | stat: -rw-r--r-- 30,946 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- Copyright (c) Christian OBRECHT 2001 -->
<html>
<head>
<title>Language description</title>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name="description" content="Language description">
<meta name="keywords" content="eukleides geometry tex latex language description">
<meta name="nameAutor" content="Christian OBRECHT">
</head>
<body>
<br>
<br>

<h1>Language description</h1>

<ul>
<li><a href="#Design">The design of the language</a>

<li><a href="#Numbers">Handling numbers</a>

<li><a href="#Vectors">Handling vectors</a>

<li><a href="#Points">Point valued functions</a>

<li><a href="#Lines">Line valued functions</a>

<li><a href="#Segments">Segment valued functions</a>

<li><a href="#Circles">Circle valued functions</a>

<li><a href="#Transformations">Geometrical transformation functions</a>

<li><a href="#Triangles">Defining triangles</a>

<li><a href="#Polygons">Defining polygons</a>

<li><a href="#Intersections">Determining intersection points</a>

<li><a href="#Interactive">Defining interactive variables</a>

<li><a href="#Graphic">General graphical commands</a>	

<li><a href="#Drawing">Drawing commands</a>

<li><a href="#Concept%20index">Concept index</a>

<li><a href="#Command%20index">Command index</a>
</ul>

<h1><a name="Design">Design of the language</a></h1>

<p>An Eukleides source file can contain:
<ul>
<li>Comments, i.e. any text beginning with `%' and ending at the end of the line. 
<li>Simple assignments, i.e. a variable name followed by `=' and an expression. 
<li>Multiple assignments, i.e. a variable name list followed by a multiple assignment command (triangle assignment, polygon assignment
or intersection assignment). 
<li>Graphical commands, i.e. parameter setting commands or drawing commands. 
</ul>

<p>A variable name is a letter, possibly followed by any letter or digit. Warning: Eukleides is case sensitive. 
An expression can have several type of values : number, vector, line, segment, circle. 
A line of the source file can contain a unique assignment or command. It can also contain several ones, in this case they must be
separed by semicolons. (No semicolon at the end of the line.)

<p>We'll use the following notations (possibly followed by a digit) to describe the possible types of the parameters in a command:
<ul>
<li><var>x</var>, <var>y</var>, <var>z</var>: number. 
<li><var>ang</var> : angle measure. 
<li><var>A</var>, <var>B</var>, <var>C</var>, <var>D</var>, <var>E</var>, <var>F</var>, <var>G</var>: point. 
<li><var>u</var>, <var>v</var>: vector. 
<li><var>l</var>: line. 
<li><var>s</var>: segment. 
<li><var>cir</var>: circle. 
<li><var>str</var>: string. 
<li><var>flg</var>: flag. 
</ul>

<p>An angle measure is a number expression followed by `:' (degrees) or `&lt;' (radians). 
A string is any text contained in one line and enclosed in double quotes.

<p>We'll use square brackets to indicate optional parameters.

<h1><a name="Numbers">Handling numbers and number valued functions</a></h1>

<p>To compute usual arithmetic operations, use the symbols : `(', `)', `+', `-', `*', `/', `^' (for exponentiation).

<p>Here are all the number valued functions:
<ul>
<li><code>sqrt(<var>x</var>)</code>
<li><code>pi</code>
<li><code>sin(<var>x</var>)</code>
<li><code>cos(<var>x</var>)</code>
<li><code>tan(<var>x</var>)</code>
<li><code>asin(<var>x</var>)</code>
<li><code>acos(<var>x</var>)</code>
<li><code>atan(<var>x</var>)</code>
<li><code>deg(<var>x</var>)</code>
<li><code>rad(<var>x</var>)</code>
<li><code>abscissa(<var>A</var>)</code> or <code>abscissa(<var>u</var>)</code>
<li><code>ordinate(<var>A</var>)</code> or <code>ordinate(<var>u</var>)</code>
<li><code>distance(<var>A</var>, <var>B</var>)</code> or <code>distance(<var>A</var>, <var>l</var>)</code>
<li><code>length(<var>u</var>)</code> or <code>length(<var>s</var>)</code>
<li><code>radius(<var>cir</var>)</code>
<li><code>height(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Distance between point <var>B</var> and line (<var>AC</var>). 
<li><code>angle(<var>u</var>)</code> or <code>angle(<var>l</var>)</code> or <code>angle(<var>s</var>)</code><br>
Argument of the object, i.e. measure of the angle between the object and the horizontal direction. 
<li><code>angle(<var>u</var>, <var>v</var>)</code><br>
Measure of the angle between vector <var>u</var> and vector <var>v</var>. 
<li><code>angle(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Measure of the angle under <var>ABC</var>. 
</ul>


<h1><a name="Vectors">Handling vectors</a></h1>

<p>To compute usual vector operations, use the symbols : `(', `)', `+', `-', `*' (multiply by a number), `/' (divide by a number). 
To compute the scalar product of two vectors, use the symbol : `*'.

<p>Here are all the vector valued functions:
<ul>
<li><code>vector(<var>x</var>, <var>y</var>)</code><br>
Vector of abscissa <var>x</var> and ordinate <var>y</var>. 
<li><code>vector(<var>x</var>, <var>ang</var>)</code><br>
Vector of length <var>x</var> and argument <var>ang</var>. 
<li><code>vector(<var>A</var>, <var>B</var>)</code><br>
Vector from point <var>A</var> to point <var>B</var>. 
<li><code>vector(<var>l</var>)</code><br>
Unit length vector with same direction than line <var>l</var>. 
<li><code>vector(<var>s</var>)</code><br>
Vector from begin of segment <var>s</var> to end of <var>s</var>. 
<li><code>rotation(<var>u</var>, <var>ang</var>)</code><br>
</ul>


<h1><a name="Points">Point valued functions</a></h1>

<p>Here are all the point valued functions, except  <a href="#Transformations">transformations</a>.
<ul>
<li><code>point(<var>x</var>, <var>y</var>)</code><br>
Point of abscissa <var>x</var> and ordinate <var>y</var>. 
<li><code>point(<var>x</var>, <var>ang</var>)</code><br>
Point of radial coordinate <var>x</var> and argument <var>ang</var>. 
<li><code>point(<var>l</var>, <var>x</var>)</code><br>
Point of abscissa <var>x</var> on the graduated line <var>l</var>. 
<li><code>point(<var>s</var>, <var>x</var>)</code><br>
Point of abscissa <var>x</var> on the graduated line containing <var>s</var> (the origin is set to the begin of <var>s</var>). 
<li><code>point(<var>cir</var>, <var>ang</var>)</code><br>
Point of argument <var>ang</var> on circle <var>cir</var>. 
<li><code>projection(<var>A</var>, <var>l1</var> [, <var>l2</var>])</code><br>
Projection of point <var>A</var> on line <var>l1</var> in direction of line <var>l2</var> (default: in perpendicular direction of line <var>l1</var>). 
<li><code>barycenter(<var>A</var> [, <var>x</var>], <var>B</var> [, <var>y</var>])</code><br>
Barycenter of <var>A</var> and <var>B</var> with coefficient <var>x</var> and <var>y</var> (default: 1 and 1). Similar syntax for 3 or 4 points. 
<li><code>intersection(<var>l1</var>, <var>l2</var>)</code><br>
Intersection point of lines <var>l1</var> and <var>l2</var>. 
<li><code>abscissa(<var>l</var>, <var>x</var>)</code><br>
Point of abscissa <var>x</var> on line <var>l</var>. 
<li><code>ordinate(<var>l</var>, <var>y</var>)</code><br>
Point of ordinate <var>y</var> on line <var>l</var>. 
<li><code>midpoint(<var>s</var>)</code>
<li><code>begin(<var>s</var>)</code>
<li><code>end(<var>s</var>)</code>
<li><code>center(<var>cir</var>)</code>
<li><code>orthocenter(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Orthocenter of triangle <var>ABC</var>. 
</ul>

<h1><a name="Lines">Line valued functions</a></h1>

<p>Here are all the line valued functions, except <a href="#Transformations">transformations</a>.
<ul>
<li><code>line(<var>A</var>, <var>B</var>)</code>
<li><code>line(<var>A</var>, <var>u</var>)</code>
<li><code>line(<var>s</var>)</code>
<li><code>line(<var>A</var>, <var>ang</var>)</code><br>
Line containing point <var>A</var> with argument <var>ang</var>. 
<li><code>line(<var>cir</var>, <var>ang</var>)</code><br>
Tangent line of circle <var>cir</var> containing point of argument <var>ang</var>. 
<li><code>parallel(<var>l</var>, <var>A</var>)</code> or <code>parallel(<var>s</var>, <var>A</var>)</code>
<li><code>perpendicular(<var>l</var>, <var>A</var>)</code> or <code>perpendicular(<var>s</var>, <var>A</var>)</code>
<li><code>bisector(<var>s</var>)</code><br>
Perpendicular bisector of segment <var>s</var>. 
<li><code>bisector(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Bissector of angle under <var>ABC</var>. 
<li><code>altitude(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Altitude of triangle <var>ABC</var> containing point <var>A</var>. 
<li><code>median(<var>s</var>)</code>
</ul>

<h1><a name="Segments">Segment valued functions</a></h1>

<p>Here are all the segment valued functions, except <a href="#Transformations">transformations</a>.
<ul>
<li><code>segment(<var>A</var>, <var>B</var>)</code>
<li><code>segment(<var>A</var>, <var>u</var>)</code>
<li><code>segment(<var>A</var>, <var>x</var>, <var>ang</var>)</code><br>
Segment of length <var>x</var> and argument <var>ang</var>, beginning with <var>A</var>. 
<li><code>segment(<var>cir</var>, <var>ang</var>)</code><br>
Segment from center of circle <var>cir</var> to point of argument <var>ang</var>. 
</ul>

<h1><a name="Circles">Circle valued functions</a></h1>

<p>Here are all the circle valued functions, except <a href="#Transformations">transformations</a>.
<ul>
<li><code>circle(<var>A</var>, <var>B</var>)</code><br>
Circle of diameter [<var>AB</var>]
<li><code>circle(<var>A</var>, <var>B</var>, <var>C</var>)</code><br>
Circumcircle of triangle <var>ABC</var>. 
<li><code>circle(<var>A</var>, <var>x</var>)</code><br>
Circle of center <var>A</var> and radius <var>x</var>. 
<li><code>incircle(<var>A</var>, <var>B</var>, <var>C</var>)</code>
</ul>

<h1><a name="Transformations">Geometrical transformation functions</a></h1>

<p>We'll note <var>obj</var> an object which can be a point, a line, a segment or a circle.

<p>Here are all the transformation functions:
<ul>
<li><code>translation(<var>obj</var>, <var>u</var>)</code>
<li><code>reflection(<var>obj</var>, <var>l</var>)</code>
<li><code>rotation(<var>obj</var>, <var>A</var> [, <var>ang</var>])</code><br>
Rotation of center <var>A</var> and angle <var>ang</var> (default: 180 degrees). 
<li><code>homothecy(<var>obj</var>, <var>A</var>, <var>x</var>)</code><br>
Homothecy, i.e. expansion or dilation, of center <var>A</var> and ratio <var>x</var>. 
</ul>

<h1><a name="Triangles">Defining triangles</a></h1>

<p>A triangle assignment is a list of 3 variable names followed by the word <code>triangle</code>, <code>right</code>, <code>isosceles</code>
or <code>equilateral</code> and some optional parameters. If the first variable is already defined as a point, the triangle will be
constructed from this point. If not, the point will be set to origin.

<p>Here are all the ways to define a triangle:
<ul>
<li><code><var>A</var> <var>B</var> <var>C</var> triangle[(<var>x</var> [ , <var>ang</var>])]</code><br>
Defines a scalenes triangle with <var>AB</var> = <var>x</var> (default: 6). The triangle is an optimal scalenes triangle. 
<li><code><var>A</var> <var>B</var> <var>C</var> triangle(<var>x</var>,  <var>y</var>, <var>z</var> [ , <var>ang</var>])</code><br>
Defines a scalenes triangle with <var>AB</var> = <var>x</var>, <var>BC</var> = <var>y</var> and  <var>CA</var> = <var>z</var>. 
<li><code><var>A</var> <var>B</var> <var>C</var> triangle(<var>x</var>, <var>ang1</var>, <var>ang2</var> [ , <var>ang3</var>])]</code><br>
Defines a scalenes triangle with <var>AB</var> = <var>x</var>, measure of the angle under <var>BAC</var> equals <var>ang1</var>, measure of the angle under
<var>CBA</var> equals <var>ang2</var>. 
<li><code><var>A</var> <var>B</var> <var>C</var> right[(<var>x</var>, <var>y</var> [ , <var>ang</var>])]</code><br>
Defines a right triangle (right angle in <var>A</var>) with <var>AB</var> = <var>x</var> and <var>AC</var> = <var>y</var> (default: 6 and 4.5). 
<li><code><var>A</var> <var>B</var> <var>C</var> right(<var>x</var>, <var>ang1</var> [ , <var>ang2</var>])</code><br>
Defines a right triangle (right angle in <var>B</var>) with <var>AB</var> = <var>x</var> and measure of the angle under <var>BAC</var> equals <var>ang1</var>. 
<li><code><var>A</var> <var>B</var> <var>C</var> isosceles[(<var>x</var>, <var>ang1</var> [ , <var>ang2</var>])]</code><br>
Defines an isosceles triangle with <var>AB</var> = <var>x</var> and measure of the angle under <var>BAC</var> or <var>CBA</var>  equals <var>ang1</var>
(default: 6 and 39 degrees). 
<li><code><var>A</var> <var>B</var> <var>C</var> isosceles(<var>x</var>, <var>y</var> [ , <var>ang</var>])</code><br>
Defines an isosceles triangle with <var>AB</var> = <var>x</var> and <var>AC</var> = <var>CB</var> = <var>y</var>. 
<li><code><var>A</var> <var>B</var> <var>C</var> equilateral[(<var>x</var> [ , <var>ang</var>])]</code><br>
Defines an equilateral triangle of side length <var>x</var> (default: 6). 
</ul>

<p><em>Note</em>: The last optional parameter is the argument of segment [<var>AB</var>] (default: 0 degrees).

<h1><a name="Polygons">Defining polygons</a></h1>

<p>A quadrilateral assignment is a list of 4 variable names followed by the word <code>parallelogram</code>, <code>rectangle</code> or <code>square</code>
and some optional parameters. If the first variable is already defined as a point, the quadrilateral will be constructed from this point. 
If not, the point will be set to origin.

<p>Here are all the ways to define a quadrilateral:
<ul>
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> parallelogram[(<var>x</var>, <var>y</var>, <var>ang1</var> [ , <var>ang2</var>])]</code><br>
Defines a parallelogram with <var>AB</var> = <var>x</var>, <var>AD</var> = <var>y</var> and angle under <var>BAD</var> equals <var>ang1</var> (default: 5, 4 and
75 degrees). 
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> parallelogram(<var>u</var>, <var>v</var> [ , <var>ang</var>])</code><br>
Defines a parallelogram with vector from <var>A</var> to <var>B</var> equals =<var>u</var> and vector from <var>A</var> to <var>D</var> equals <var>v</var>. 
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> rectangle[(<var>x</var>, <var>y</var> [ , <var>ang</var>])]</code><br>
Defines a rectangle with <var>AB</var> = <var>x</var> and <var>AD</var> = <var>y</var> (default: 6 and 6 / `golden ratio'). 
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> square[(<var>x</var> [ , <var>ang</var>])]</code><br>
Defines a square with <var>AB</var> = <var>x</var> (default: 4). 
</ul>

<p><em>Note</em>: The last optional parameter is the argument of segment [<var>AB</var>] (default: 0 degrees).

<p>A pentagon assignment is the following command:
<ul>
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> <var>E</var> pentagon(<var>F</var>, <var>x</var>, <var>ang</var>)</code>
</ul>

<p>It defines a pentagon of center <var>F</var>, radius <var>x</var> and such as argument of segment [<var>OA</var>] equals <var>ang</var>.

<p>An hexagon assignment is the following command:
<ul>
<li><code><var>A</var> <var>B</var> <var>C</var> <var>D</var> <var>E</var> <var>F</var> hexagon(<var>G</var>, <var>x</var>, <var>ang</var>)</code>
</ul>

<p>It defines an hexagon of center <var>G</var>, side length <var>x</var> and such as argument of segment [<var>OA</var>] equals <var>ang</var>.

<h1><a name="Interactive">Interactive assignments</a></h1>

<p>An interactive assignment is the following command:
<ul>
<li><code><var>x</var> interactive(<var>y</var>, <var>z</var>, [ <var>x1</var> , <var>x2</var> , ] <var>str</var>, <var>flg</var>)</code>
</ul>

<p>With <code>eukleides</code>, variable <var>x</var> is simply set to number <var>y</var>.<br>
With <code>xeukleides</code>, it allows, while viewing, to modify the value of the numerical variable <var>x</var> using the arrow keys. The initial value
of <var>x</var> is <var>y</var>, the increment is <var>z</var>. The optional parameters <var>x1</var> and <var>x2</var> are the lower and upper bound of <var>x</var>. 
The string <var>str</var> has to contain one uppercase letter. To modify <var>x</var>, one has to press first the corresponding key (at the beginning,
the default state is `A'). The permitted values of <var>flg</var> are <code>right</code> (in this case, <var>x</var> will be incremented by pressing the
right arrow key and decremented by pressing the left arrow key) or <code>up</code> (in this case, <var>x</var> will be incremented by pressing the up
arrow key and decremented by pressing the down arrow key).

<h1><a name="Intersections">Intersection points</a></h1>

<p>Intersection assignments are:
<ul>
<li><code><var>A</var> <var>B</var> intersection(<var>l</var>, <var>cir</var>)</code>
<li><code><var>A</var> <var>B</var> intersection(<var>cir1</var>, <var>cir2</var>)</code>
</ul>

<p>If the two object are tangent, the two variables will be set to the same point.

<h1><a name="Graphic">General graphical commands</a></h1>

<p>The purpose of general graphical commands is mainly to set some general parameters.<br>

<p>Here are all of them:
<ul>
<li><code>frame(<var>x1</var>, <var>y1</var>, <var>x2</var>, <var>y2</var> [ , <var>z</var>])</code><br>
Sets the visible frame. The lower-left corner has coordinates (<var>x1</var>, <var>y1</var>) and the upper-right corner (<var>x2</var>, <var>y2</var>). 
With <code>eukleides</code>, the optional parameter set the unit length to <var>z</var> cm (default: 1). With <code>xeukleides</code>, this parameter
has no effect, because the figure is always drawn using the largest scale such that it fits into the drawing area. If no frame is specified
it is set to default frame: (-2, -2, 8, 6). 
<li><code>color(<var>flg</var>)</code><br>
Sets color to <var>flg</var>. Permitted values of <var>flg</var> are black (default), darkgray, gray, lightgray, white, red, green, blue, cyan, magenta
and yellow. 
<li><code>color <var>str</var></code><br>
With <code>eukleides</code>, sets color to <var>str</var> (it has to be a valid pstricks color). With <code>xeukleides</code>, it has no effect.
<li><code>tricks <var>str</var></code><br>
With <code>eukleides</code>, adds an initial `\' to <var>str</var> and puts it verbatim to the output. It has to be valid TeX code. You can use it to define your own
colors, draw a curve, etc. With <code>xeukleides</code>, it has no effect.
<li><code>font <var>str</var></code><br>
With <code>xeukleides</code>, changes current font. String <var>str</var> has to be a valid XLFD. With <code>eukleides</code>, it has no effect. 
</ul>

<h1><a name="Drawing">Drawing commands</a></h1>

<p>Here are all the drawing commands.
<ul>
<li><code>draw(<var>A</var> [ , <var>flg</var>])</code><br>
Draws point <var>A</var> with a shape corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>dot</code>, <code>box</code>, <code>cross</code>
and <code>plus</code> (default: dot). 
<li><code>draw(<var>u</var>, <var>A</var> [ , <var>flg</var>])</code><br>
Draws vector <var>u</var> from point <var>A</var> with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>,
<code>dashed</code> and <code>dotted</code> (default: full). 
<li><code>draw(<var>l</var> [ , <var>flg1</var> [ , <var>flg2</var>]])</code><br>
Draws line <var>l</var> with an aspect corresponding to <var>flg1</var> and <var>flg2</var>. Permitted values of <var>flg1</var> are <code>full</code>,
<code>dashed</code> and <code>dotted</code> (default: full). Permitted values of <var>flg2</var> are <code>entire</code>, <code>halfline</code> and <code>backhalfline</code>
(default: entire). 
<li><code>draw(<var>s</var> [ , <var>flg1</var> [ , <var>flg2</var>]])</code><br>
Draws segment <var>s</var> with an aspect corresponding to <var>flg1</var> and <var>flg2</var>. Permitted values of <var>flg1</var> are <code>full</code>,
<code>dashed</code> and <code>dotted</code> (default: full). Permitted values of <var>flg2</var> are <code>noarrow</code>, <code>arrow</code>, <code>backarrow</code> and
<code>doublearrow</code> (default: noarrow). 
<li><code>draw(<var>cir</var> [ , <var>flg</var>])</code><br>
Draws circle <var>cir</var> with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>, <code>dashed</code> and
<code>dotted</code> (default: full). 
<li><code>draw(<var>cir</var>, <var>ang1</var>, <var>ang2</var>, [ , <var>flg1</var> [ , <var>flg2</var>]])</code><br>
Draws an arc of circle <var>cir</var> from point of argument <var>ang1</var> to point of argument <var>ang2</var>, with an aspect corresponding to
<var>flg1</var> and <var>flg2</var>.  Permitted values of <var>flg1</var> are <code>full</code>, <code>dashed</code> and <code>dotted</code> (default: full). Permitted
values of <var>flg2</var> are <code>noarrow</code>, <code>arrow</code>, <code>backarrow</code> and <code>doublearrow</code> (default: noarrow). 
<li><code>draw(<var>A</var>, <var>B</var>, <var>C</var>, [ , <var>flg</var>])</code><br>
Draws a triangle with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>, <code>dashed</code> and <code>dotted</code>
(default: full). 
<li><code>draw(<var>A</var>, <var>B</var>, <var>C</var>, <var>D</var> [ , <var>flg</var>])</code><br>
Draws a quadrilateral with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>, <code>dashed</code> and
<code>dotted</code> (default: full). 
<li><code>draw(<var>A</var>, <var>B</var>, <var>C</var>, <var>D</var>, <var>E</var>, [ , <var>flg</var>])</code><br>
Draws a pentagon with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>, <code>dashed</code> and <code>dotted</code>
(default: full). 
<li><code>draw(<var>A</var>, <var>B</var>, <var>C</var>, <var>D</var>, <var>E</var>, <var>F</var> [ , <var>flg</var>])</code><br>
Draws an hexagon with an aspect corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>full</code>, <code>dashed</code> and <code>dotted</code>
(default: full). 
<li><code>draw(<var>str</var>, <var>A</var>, [ <var>x</var>, ] <var>ang</var>)</code><br>
Prints the text contained in <var>str</var> at a distance <var>x</var> (default: .3) and with argument <var>ang</var> from point <var>A</var>. 
<li><code>draw(<var>str</var>, <var>s</var>, [ <var>x</var>, ] <var>ang</var>)</code><br>
Prints the text contained in <var>str</var> at a distance <var>x</var> (default: .3) and with argument <var>ang</var> from the midpoint of segment <var>s</var>. 
<li><code>draw(<var>x</var>, [<var>str</var>, ] <var>A</var>, [ <var>y</var>, ] <var>ang</var>)</code><br>
Prints the value of <var>x</var> optionaly formated with <var>str</var> (using the C-language syntax) at a distance <var>y</var> (default: .3) and with
argument <var>ang</var> from point <var>A</var>. 
<li><code>draw(<var>x</var>, [<var>str</var>, ] <var>s</var>, [ <var>y</var>, ] <var>ang</var>)</code><br>
Prints the value of <var>x</var> optionaly formated with <var>str</var> (using the C-language syntax) at a distance <var>y</var> (default: .3) and with
argument <var>ang</var> from the midpoint of segment <var>s</var>. 
<li><code>draw(<var>x1</var>, <var>x2</var>, <var>str</var>, <var>A</var>, [ <var>y</var>, ] <var>ang</var>)</code><br>
Prints the values of <var>x1</var> and <var>x2</var> formated with <var>str</var> (using the C-language syntax) at a distance <var>y</var> (default: .3) and with
argument <var>ang</var> from point <var>A</var>. 
<li><code>draw(<var>x1</var>, <var>x2</var>, <var>str</var>, <var>s</var>, [ <var>y</var>, ] <var>ang</var>)</code><br>
Prints the values of <var>x1</var> and <var>x2</var> formated with <var>str</var> (using the C-language syntax) at a distance <var>y</var> (default: .3) and with
argument <var>ang</var> from the midpoint of segment <var>s</var>. 
<li><code>mark(<var>s</var> [ , <var>flg</var>])</code><br>
Marks the segment <var>s</var> with a symbol corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>simple</code>, <code>double</code>,
<code>triple</code> and <code>cross</code> (default: simple). 
<li><code>mark(<var>A</var>, <var>B</var>, <var>C</var> [ , <var>flg</var>])</code><br>
Marks the angle under <var>ABC</var> with a symbol corresponding to <var>flg</var>. Permitted values of <var>flg</var> are <code>simple</code>, <code>double</code>,
<code>triple</code>, <code>dash</code>, <code>arrow</code>, <code>backarrow</code> and <code>right</code> (default: simple). 
</ul>

<h1><a name="Concept%20index">Concept index</a></h1>

<ul compact>
<li>angle measures: <a href="#Design">Design</a>
<li>argument: <a href="#Numbers">Numbers</a>
<li>arithmetic operations: <a href="#Numbers">Numbers</a>
<li>circle valued functions: <a href="#Circles">Circles</a>
<li>colors: <a href="#Graphic">Graphic</a>
<li>comments: <a href="#Design">Design</a>
<li>drawing commands: <a href="#Drawing">Drawing</a>
<li>equilateral: <a href="#Triangles">Triangles</a>
<li>fonts: <a href="#Graphic">Graphic</a>
<li>graduated line: <a href="#Points">Points</a>
<li>graphical commands: <a href="#Graphic">Graphic</a>
<li>graphical commands: <a href="#Design">Design</a>
<li>hexagon: <a href="#Polygons">Polygons</a>
<li>homothecy: <a href="#Transformations">Transformations</a>
<li>interactive: <a href="#Interactive">Interactive</a>
<li>intersection: <a href="#Intersections">Intersections</a>, <a href="#Points">Points</a>
<li>isosceles: <a href="#Triangles">Triangles</a>
<li>line valued functions: <a href="#Lines">Lines</a>
<li>multiple assignments: <a href="#Design">Design</a>
<li>notations: <a href="#Design">Design</a>
<li>number valued functions: <a href="#Numbers">Numbers</a>
<li>parallelogram: <a href="#Polygons">Polygons</a>
<li>pentagon: <a href="#Polygons">Polygons</a>
<li>point valued functions: <a href="#Points">Points</a>
<li>polygons: <a href="#Polygons">Polygons</a>
<li>pstricks: <a href="#Graphic">Graphic</a>
<li>quadrilateral: <a href="#Polygons">Polygons</a>
<li>rectangle: <a href="#Polygons">Polygons</a>
<li>reflection: <a href="#Transformations">Transformations</a>
<li>right: <a href="#Triangles">Triangles</a>
<li>rotation: <a href="#Transformations">Transformations</a>, <a href="#Vectors">Vectors</a>
<li>scalar product: <a href="#Vectors">Vectors</a>
<li>scalenes: <a href="#Triangles">Triangles</a>
<li>segment valued functions: <a href="#Segments">Segments</a>
<li>simple assignments: <a href="#Design">Design</a>
<li>square: <a href="#Polygons">Polygons</a>
<li>string: <a href="#Design">Design</a>
<li>transformation: <a href="#Transformations">Transformations</a>
<li>translation: <a href="#Transformations">Transformations</a>
<li>triangle: <a href="#Triangles">Triangles</a>
<li>values: <a href="#Design">Design</a>
<li>vector operations: <a href="#Vectors">Vectors</a>
<li>vector valued functions: <a href="#Vectors">Vectors</a>
</ul>

<h1><a name="Command%20index">Command index</a></h1>

<ul compact>
<li><code>abscissa</code>: <a href="#Points">Points</a>
<li><code>abscissa</code>: <a href="#Numbers">Numbers</a>
<li><code>acos</code>: <a href="#Numbers">Numbers</a>
<li><code>altitude</code>: <a href="#Lines">Lines</a>
<li><code>angle</code>: <a href="#Numbers">Numbers</a>
<li><code>asin</code>: <a href="#Numbers">Numbers</a>
<li><code>atan</code>: <a href="#Numbers">Numbers</a>
<li><code>barycenter</code>: <a href="#Points">Points</a>
<li><code>begin</code>: <a href="#Points">Points</a>
<li><code>bisector</code>: <a href="#Lines">Lines</a>
<li><code>center</code>: <a href="#Points">Points</a>
<li><code>circle</code>: <a href="#Circles">Circles</a>
<li><code>`-'</code>: <a href="#Vectors">Vectors</a>
<li><code>`-'</code>: <a href="#Numbers">Numbers</a>
<li><code>`/'</code>: <a href="#Vectors">Vectors</a>
<li><code>`/'</code>: <a href="#Numbers">Numbers</a>
<li><code>`^'</code>: <a href="#Numbers">Numbers</a>
<li><code>`*'</code>: <a href="#Vectors">Vectors</a>
<li><code>`*'</code>: <a href="#Numbers">Numbers</a>
<li><code>`+'</code>: <a href="#Vectors">Vectors</a>
<li><code>`+'</code>: <a href="#Numbers">Numbers</a>
<li><code>color</code>: <a href="#Graphic">Graphic</a>
<li><code>cos</code>: <a href="#Numbers">Numbers</a>
<li><code>deg</code>: <a href="#Numbers">Numbers</a>
<li><code>distance</code>: <a href="#Numbers">Numbers</a>
<li><code>draw</code>: <a href="#Drawing">Drawing</a>
<li><code>end</code>: <a href="#Points">Points</a>
<li><code>equilateral</code>: <a href="#Triangles">Triangles</a>
<li><code>font</code>: <a href="#Graphic">Graphic</a>
<li><code>frame</code>: <a href="#Graphic">Graphic</a>
<li><code>height</code>: <a href="#Numbers">Numbers</a>
<li><code>hexagon</code>: <a href="#Polygons">Polygons</a>
<li><code>homothecy</code>: <a href="#Transformations">Transformations</a>
<li><code>interactive</code>: <a href="#Interactive">Interactive</a>
<li><code>intersection</code>: <a href="#Intersections">Intersections</a>
<li><code>intersection</code>: <a href="#Points">Points</a>
<li><code>isosceles</code>: <a href="#Triangles">Triangles</a>
<li><code>length</code>: <a href="#Numbers">Numbers</a>
<li><code>line</code>: <a href="#Lines">Lines</a>
<li><code>mark</code>: <a href="#Drawing">Drawing</a>
<li><code>median</code>: <a href="#Lines">Lines</a>
<li><code>midpoint</code>: <a href="#Points">Points</a>
<li><code>ordinate</code>: <a href="#Points">Points</a>
<li><code>ordinate</code>: <a href="#Numbers">Numbers</a>
<li><code>orthocenter</code>: <a href="#Points">Points</a>
<li><code>parallel</code>: <a href="#Lines">Lines</a>
<li><code>parallelogram</code>: <a href="#Polygons">Polygons</a>
<li><code>pentagon</code>: <a href="#Polygons">Polygons</a>
<li><code>perpendicular</code>: <a href="#Lines">Lines</a>
<li><code>pi</code>: <a href="#Numbers">Numbers</a>
<li><code>point</code>: <a href="#Points">Points</a>
<li><code>projection</code>: <a href="#Points">Points</a>
<li><code>rad</code>: <a href="#Numbers">Numbers</a>
<li><code>radius</code>: <a href="#Numbers">Numbers</a>
<li><code>rectangle</code>: <a href="#Polygons">Polygons</a>
<li><code>reflection</code>: <a href="#Transformations">Transformations</a>
<li><code>right</code>: <a href="#Triangles">Triangles</a>
<li><code>rotation</code>: <a href="#Transformations">Transformations</a>
<li><code>rotation</code>: <a href="#Vectors">Vectors</a>
<li><code>segment</code>: <a href="#Segments">Segments</a>
<li><code>sin</code>: <a href="#Numbers">Numbers</a>
<li><code>sqrt</code>: <a href="#Numbers">Numbers</a>
<li><code>square</code>: <a href="#Polygons">Polygons</a>
<li><code>tan</code>: <a href="#Numbers">Numbers</a>
<li><code>translation</code>: <a href="#Transformations">Transformations</a>
<li><code>triangle</code>: <a href="#Triangles">Triangles</a>
<li><code>tricks</code>: <a href="#Graphic">Graphic</a>
<li><code>vector</code>: <a href="#Vectors">Vectors</a>
</ul>

<br>

</body></html>