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
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
Colors, the last
Color on colors is used for
the remaining iterations.
- The diameter of the inner circle.
- The diameter of the outer circle for the first iteration. It must be
greater than or equal to diameter_outer_end.
- The diameter of the outer circle for the last iteration.
It must be
less than or equal to diameter_outer_start.
- The amount by which the diameter of the outer circle is reduced
upon each iteration.
- The number of divisions of the circle used for calculating
on the epicycloid. For instance, if arc_divisions is 90, then
Path for each epicycloid will only have 4
since 360 / 90 = 4.
unsigned int offsets
- 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
to by the pointers on this vector are used for drawing the epicycloids.
Color is used for each iteration.
epicycloid_pattern_1(5, 3, 3, 1, 72);
default_focus.set(2, 5, -10, 2, 5, 10, 10);
epicycloid_pattern_1(5, 3, 3, 1, 36);