# Features of Euclide

## Overview

In the actual version, Euclide allows creations of geometric entities,
called **constructions**.
These constructions can be classified as:

- Shapes, defined as a set of points in the plane :
- points or point sets
- curves
- domains, that are bounded by an oriented curve

- Geometric measures (length of a curve, angle between 2 lines...)
- Transforms (rotations, translations...)
- Vectors, usually defined from 2 points
- Predicates, that are the result of a boolean test (is a point inside a polygon ?, is the polygon CCW oriented ?)

## Constructions

### Creation of shapes

Various shapes can be created from selecting other geometrical objects (shapes, measures, transforms), or by specifying manually value for position, radius... When a shape need a new point, the user clic on a point of the figure, or on the location of a new free point, which will be created in the same time as the new shape. Here is a list of available shapes:

- Points:
- Free point
- Intersection point of a curve and a line
- Point on a curve (closest point to another point)
- Point on a curve (with a defined geodesic position)
- Centroid of several point
- Transformed point (by any planar transform)
- Linear objects:
- Line segments (from 2 points)
- Straight lines
- From 2 points
- Parallel to a line through a point
- Orthogonal to a line through a point
- Median of 2 points
- Radical axis of 2 circle

- Line arcs (from 2 points, bisectors, reflexion of a ray on a curve...)
- Polyline (from a series of points)
- Circles
- From center and a point belonging to the circle
- From center and radius (given as distance measure)
- From 2 diameter points
- From 3 points on the circle
- Circle Arcs
- Circle arc from 3 points
- Circle arc from 3 points, with specific orientation
- Curves
- Bezier curve from 4 points
- Composition of several curves

### Measures on shapes

- Distance/length measure
- Closest distance of a point to a shape
- Radius of a circle
- Signed distance measure
- Angle measure
- Signed angle between 3 points
- Horizontal angle of a line or a linear object
- Horizontal angle of 2 points
- Counting measures

### Transforms

- Translation by the vector joining 2 points
- Rotation around a point with a given angle
- Line symetry
- Point symetry
- Circle inversion

## To be implemented:

Some features are still lacking and should be implemented in future versions:

- Copy/Paste of graphical items
- Export to SVG, PNG...
- management of complex structures: graphs, tilings...
- display of dependency graph