Draws a pattern consisting of epicycloids. The outer circle rolls
around the circumference of the inner circle and a Point on the
outer circle traces an epicycloid.

If offsets is greater than 1, the outer circle is rotated
offset times around the center of the inner circle
by
360 / offsets
(starting from the outer circle's original
position). From each of these new positions, an epicycloid is drawn.

While diameter_outer_start is
greater than or equal to diameter_outer_end, the diameter of the
outer circle is reduced by step, and another set of epicycloids is
traced, as described above. Each time the diameter of
the outer circle is reduced, a new Color is taken from
colors for the drawing commands. If there are more iterations
than Colors, the last Color on colors is used for
the remaining iterations.

The arguments:

realdiameter_inner

The diameter of the inner circle.

realdiameter_outer_start

The diameter of the outer circle for the first iteration. It must be
greater than or equal to diameter_outer_end.

realdiameter_outer_end

The diameter of the outer circle for the last iteration.
It must be
less than or equal to diameter_outer_start.

realstep

The amount by which the diameter of the outer circle is reduced
upon each iteration.

intarc_divisions

The number of divisions of the circle used for calculating Points
on the epicycloid. For instance, if arc_divisions is 90, then
the Path for each epicycloid will only have 4 Points,
since 360 / 90 = 4.

unsigned intoffsets

The number of epicycloids drawn upon each iteration. Each one is
rotated by 360 / offsets around the center of the inner circle.
offsets must be greater than or equal to 1.

vector<const Color*>colors

Default: Colors::default_color_vector. The Colors pointed
to by the pointers on this vector are used for drawing the epicycloids.
One Color is used for each iteration.