[Top] [Contents] [Index]

Euklides

EUKLIDES

Euklides is an euclidean geometry drawing language. The compiler euklides allows you to typeset geometry figures within a (La)TeX document. The X-Window program xeuklides makes possible to create interactive geometry figures.

This is version 1.3 of Euklides documentation.

Overview of the Euklides system  An overview of the Euklides system
1. Design of the language  The design of the language
2. Handling numbers and number valued functions  
3. Handling vectors  
4. Point valued functions  
5. Line valued functions  
6. Segment valued functions  
7. Circle valued functions  
8. Geometrical transformation functions  
9. Defining triangles  
10. Defining polygons  
11. Intersection points  Determining intersection points
12. Interactive assignements  Defining interactive variables
13. General graphical commands  
14. Drawing commands  
15. Samples  Some source files of classical figures
Contact  Bug reports and comments
Concept index  Index of concepts
Command index  Index of commands


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Overview of the Euklides system

The language Euklides provides simple and powerfull commands for creating elementary euclidean geometry figures. The underlying philosophy is to avoid as much as possible the use of coordinates.
The compiler euklides translates a source file written in this specific language into TeX (pstricks) macrocommands. (The result is sent to standard output.)
The X-Window program xeuklides is a complete system for editing and viewing figures described in this language. With xeuklides, the figures can be interactive, i.e., while viewing, it is possible to modify some numerical values using the keyboard.

There are three situations where Euklides can be usefull:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Design of the language

An Euklides source file can contain:

A variable name is a letter, possibly followed by any letter or digit. Warning: Euklides 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 assignement 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.)

We'll use the following notations (possibly followed by a digit) to describe the possible types of the parameters in a command:

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

We'll use square brackets to indicate optional parameters.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Handling numbers and number valued functions

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

Here are all the number valued functions:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Handling vectors

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 : `*'.

Here are all the vector valued functions:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. Point valued functions

Here are all the point valued functions, except See section 8. Geometrical transformation functions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. Line valued functions

Here are all the line valued functions, except See section 8. Geometrical transformation functions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6. Segment valued functions

Here are all the segment valued functions, except See section 8. Geometrical transformation functions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. Circle valued functions

Here are all the circle valued functions, except See section 8. Geometrical transformation functions.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8. Geometrical transformation functions

We'll note obj an object which can be a point, a line, a segment or a circle. Here are all the transformation functions:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9. Defining triangles

A triangle assignment is a list of 3 variable names followed by the word triangle, right, isosceles or equilateral 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.

Here are all the ways to define a triangle:

Note: The last optional parameter is the argument of segment [AB] (default: 0 degrees).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10. Defining polygons

A quadrilateral assignment is a list of 4 variable names followed by the word parallelogram, rectangle or square 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.

Here are all the ways to define a quadrilateral:

Note: The last optional parameter is the argument of segment [AB] (default: 0 degrees).

A pentagon assignment is the following command:

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

An hexagon assignment is the following command:

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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

11. Intersection points

Intersection assignments are: If the two object are tangent, the two variables will be set to the same point.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12. Interactive assignements

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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

13. General graphical commands

The purpose of general graphical commands is mainly to set some general parameters.
Here are all of them:


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14. Drawing commands

Here are all the drawing commands.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15. Samples

An isosceles triangle with some of its elementary properties illustrated.

 
A B C isosceles ; draw(A, B, C)
H = projection(C, line(A, B)) ; draw(segment(C, H), dashed) ; mark(B, H, C, right)
mark(segment(A, C), cross) ; mark(segment(C, B), cross)
mark(B, A, C, dash) ; mark(C, B, A, dash)

A figure illustrating a property of the incircle in a triangle.

 
A B C triangle ; draw(A, B, C) ; draw(incircle(A, B, C))
draw(bissector(B, A, C), dotted)
draw(bissector(A, B, C), dotted)
draw(bissector(B, C, A), dotted)

Addition of two vectors.

 
A B C D parallelogram
draw(segment(A, B), full, arrow) ; draw(segment(A, C), full, arrow) ; draw(segment(A, D), full, arrow)
draw(segment(B, C), dotted) ; draw(segment(D, C), dotted)

An angle property of parallelograms.

 
A B C D parallelogram(5, 4, 105:) ; draw(A, B, C, D)
mark(B, A, D) ; mark(D, C, B)
mark(C, B, A, double) ; mark(A, D, C, double)

An hexagon and its diagonals.

 
A B C D E F hexagon(point(3,2), 3, 0:) ; draw(A, B, C, D, E, F)
draw(segment(A, D), dotted)
draw(segment(B, E), dotted)
draw(segment(C, F), dotted)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Contact

Euklides has been created by Christian Obrecht.

Please send bug reports and comments at obrecht@mail.chez.com.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Concept index

Jump to:   %  
A   C   D   E   F   G   H   I   L   M   N   P   Q   R   S   T   V  

Index Entry Section

%
%--endOverview of the Euklides system
%--euklidesOverview of the Euklides system
%--stopOverview of the Euklides system

A
angle measures1. Design of the language
argument2. Handling numbers and number valued functions
arithmetic operations2. Handling numbers and number valued functions

C
circle valued functions7. Circle valued functions
colors13. General graphical commands
comments1. Design of the language

D
drawing commands14. Drawing commands

E
EPSOverview of the Euklides system
equilateral9. Defining triangles
euk2epsOverview of the Euklides system

F
fonts13. General graphical commands

G
graduated line4. Point valued functions
graphical commands1. Design of the language
graphical commands13. General graphical commands

H
hexagon10. Defining polygons
homothecy8. Geometrical transformation functions

I
interactive12. Interactive assignements
intersection4. Point valued functions
intersection11. Intersection points
isosceles9. Defining triangles

L
line valued functions5. Line valued functions

M
multiple assignments1. Design of the language

N
notations1. Design of the language
number valued functions2. Handling numbers and number valued functions

P
parallelogram10. Defining polygons
pentagon10. Defining polygons
point valued functions4. Point valued functions
polygons10. Defining polygons
pstricksOverview of the Euklides system
pstricks13. General graphical commands

Q
quadrilateral10. Defining polygons

R
rectangle10. Defining polygons
reflection8. Geometrical transformation functions
right9. Defining triangles
rotation3. Handling vectors
rotation8. Geometrical transformation functions

S
scalar product3. Handling vectors
scalenes9. Defining triangles
segment valued functions6. Segment valued functions
simple assignments1. Design of the language
square10. Defining polygons
string1. Design of the language

T
transformation8. Geometrical transformation functions
translation8. Geometrical transformation functions
triangle9. Defining triangles

V
values1. Design of the language
vector operations3. Handling vectors
vector valued functions3. Handling vectors

Jump to:   %  
A   C   D   E   F   G   H   I   L   M   N   P   Q   R   S   T   V  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Command index

Jump to:   `  
A   B   C   D   E   F   H   I   L   M   O   P   R   S   T   V  

Index Entry Section

`
`*'2. Handling numbers and number valued functions
`*'3. Handling vectors
`+'2. Handling numbers and number valued functions
`+'3. Handling vectors
`-'2. Handling numbers and number valued functions
`-'3. Handling vectors
`/'2. Handling numbers and number valued functions
`/'3. Handling vectors
`^'2. Handling numbers and number valued functions

A
abscissa2. Handling numbers and number valued functions
abscissa4. Point valued functions
acos2. Handling numbers and number valued functions
altitude5. Line valued functions
angle2. Handling numbers and number valued functions
asin2. Handling numbers and number valued functions
atan2. Handling numbers and number valued functions

B
barycenter4. Point valued functions
begin4. Point valued functions
bissector5. Line valued functions

C
center4. Point valued functions
circle7. Circle valued functions
color13. General graphical commands
cos2. Handling numbers and number valued functions

D
deg2. Handling numbers and number valued functions
distance2. Handling numbers and number valued functions
draw14. Drawing commands

E
end4. Point valued functions
equilateral9. Defining triangles

F
font13. General graphical commands
frame13. General graphical commands

H
heigth2. Handling numbers and number valued functions
hexagon10. Defining polygons
homothecy8. Geometrical transformation functions

I
interactive12. Interactive assignements
intersection4. Point valued functions
intersection11. Intersection points
isosceles9. Defining triangles

L
length2. Handling numbers and number valued functions
line5. Line valued functions

M
mark14. Drawing commands
median5. Line valued functions
midpoint4. Point valued functions

O
ordinate2. Handling numbers and number valued functions
ordinate4. Point valued functions
orthocenter4. Point valued functions

P
parallel5. Line valued functions
parallelogram10. Defining polygons
pentagon10. Defining polygons
perpendicular5. Line valued functions
pi2. Handling numbers and number valued functions
point4. Point valued functions
projection4. Point valued functions

R
rad2. Handling numbers and number valued functions
radius2. Handling numbers and number valued functions
rectangle10. Defining polygons
reflection8. Geometrical transformation functions
right9. Defining triangles
rotation3. Handling vectors
rotation8. Geometrical transformation functions

S
segment6. Segment valued functions
sin2. Handling numbers and number valued functions
sqrt2. Handling numbers and number valued functions
square10. Defining polygons

T
tan2. Handling numbers and number valued functions
translation8. Geometrical transformation functions
triangle9. Defining triangles
tricks13. General graphical commands

V
vector3. Handling vectors

Jump to:   `  
A   B   C   D   E   F   H   I   L   M   O   P   R   S   T   V  


[Top] [Contents] [Index] [ ? ]

Table of Contents

Overview of the Euklides system
1. Design of the language
2. Handling numbers and number valued functions
3. Handling vectors
4. Point valued functions
5. Line valued functions
6. Segment valued functions
7. Circle valued functions
8. Geometrical transformation functions
9. Defining triangles
10. Defining polygons
11. Intersection points
12. Interactive assignements
13. General graphical commands
14. Drawing commands
15. Samples
Contact
Concept index
Command index

[Top] [Contents] [Index] [ ? ]

Short Table of Contents

Overview of the Euklides system
1. Design of the language
2. Handling numbers and number valued functions
3. Handling vectors
4. Point valued functions
5. Line valued functions
6. Segment valued functions
7. Circle valued functions
8. Geometrical transformation functions
9. Defining triangles
10. Defining polygons
11. Intersection points
12. Interactive assignements
13. General graphical commands
14. Drawing commands
15. Samples
Contact
Concept index
Command index

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated using texi2html