This function creates and displays 2D Apollonian gaskets.
In mathematics, an Apollonian gasket or Apollonian net is a fractal generated from three circles, any two of which are tangent to one another
The method used to create the Apollonian gasket is based on circle inversion, which is a geometrical transformation acting with a reference circle that modifies points.
In the plane, the inverse of a point P in respect to a circle of center O and radius R is a point P' such that P and P' are on the same ray going from O, and OP times OP' equals the radius squared
OP * OP' =R²
All circles are created using the inversion properties of circles.
Input: This function takes 6 arguments (each argument is optional)
- a positive integer, which corresponds to the number of circles on the first level of the apollonian packing. (3 at least)
- a positive integer, which corresponds to the number of levels of the apollonian. Higher the number of level is, more numerous the circles will be. 10 levels is a quite high value.
- an interger (0 or 1), which allows to display(1) or not(0) the inversion circles
- an integer (0 or 1), which indicates whether or not a metapost file is created within the results.
- an integer (0 or 1), which indicates whether or not a SVG file is created within the results.
- a string which indicates the filename in which results will be printed.
Output: a struture that contains all informations on created circles on each level:
- S(1) contains all data on level 1, coordinates centers and
radius of each circle