Euclide is a dynamic geometry application written in Java. It allows creation of geometric shapes (lines, points, circles, conics...) and transforms (rotation, symmetry...), which depend each other. Moving a shape will also move shapes dependent on it.
Jeuclide works good.
Generally, the drawing part looks good. But have no idea how to use and how to run macro. It needs some documentation!!