The idea: a polygon that jumps around a rose

Start with the rose r = sin(nθ). Instead of drawing the curve, pick a whole number of degrees d and visit only the points at

θ = 0, d, 2d, 3d, … 360d  (degrees)        r = sin(nθ)        k = 0, 1, … 360

Join point k to point k + 1 with a straight line. The 360 lines are the Maurer rose (Peter Maurer, 1987). The corners all sit on the rose, but the lines cut straight across it, and a small change of d gives a completely different picture.

Left: the orange 4-petal rose r = sin 2θ with blue points 0 to 6 at θ = 0°, 39°, 78°, … 234° joined by magenta lines that jump between petals. Right: all 360 lines for n = 2, d = 39°, a dense pattern inside the rose
Every corner is a point of the rose; the lines jump d degrees at a time, so they cut across the petals.

The rule, step by step

Point k sits at angle θ = k·d and distance r = sin(nθ) from the centre. In x, y that is

x = sin(nθ)·cos θ        y = sin(nθ)·sin θ        θ = k·d degrees

Point 0 is always the centre, because sin 0 = 0. When sin(nθ) is negative, the point is drawn on the far side of the centre, opposite the direction θ: that is how polar coordinates treat a negative r (see Polar Coordinates). Point 360 is at θ = 360·d, a whole number of turns, so it is point 0 again and the polygon always closes. (Demo: the rule, one line at a time (n = 2, d = 39), or the Draw 20 lines button for the current n and d.)

kθ = 39kθ mod 360r = sin 2θ
00°0°0 (centre)
139°39°0.98
278°78°0.41
3117°117°−0.81 (far side)
10390°30°0.87

When the walk closes early: gcd(360, d)

Only θ mod 360° matters. The angles k·d mod 360 are exactly the multiples of g = gcd(360, d), so the walk visits K = 360/g different angles and is back at θ = 0° after K jumps. After that it draws the same K lines again, 360/K = g times. d = 71 shares no factor with 360, so it uses all 360 angles; d = 72 has gcd 72 and is back after 5 jumps.

Four small Maurer roses for n = 2: d = 120 is a triangle with 3 points, d = 72 a shape with 5 points, d = 40 a shape with 9 points, d = 39 a dense pattern of 120 jumps and 117 points
For the same rose, the gcd of 360 and d decides how many angles the walk ever reaches.

Counting the points exactly

K angles do not always give K different points, for two reasons:

  • The centre. Every angle with sin(nθ) = 0, that is nθ a multiple of 180°, gives r = 0. Say Z of the K angles do; they all land on the same point, the centre.
  • Odd n. sin(n(θ + 180°)) = −sin(nθ) when n is odd, and a negative r at θ + 180° is the same point as r at θ. So the rose is traced twice, and if the walk visits both θ and θ + 180° (it does exactly when K is even) the points pair up.
points = (K − Z)  [÷ 2 when n is odd and K is even]  + 1 if Z > 0

Two points with r ≠ 0 can only coincide in that second way, so the count is exact (the page was checked against a brute-force count for every n = 1 … 10 and d = 1 … 360).

n, dgKZpoints
6, 71136012360 − 12 + 1 = 349
6, 7272515 − 1 + 1 = 5
2, 3931204120 − 4 + 1 = 117
7, 1913602(360 − 2) ÷ 2 + 1 = 180
6, 180180221: only the centre

The panel what d does now shows g, K, Z and this count for the current n and d. (Demo: d = 71 vs d = 72: 349 points vs 5 (n = 6).)

d = 1 is the rose itself

With d = 1 the points are 1° apart along the rose, so the 360 short chords are the rose drawn as a polygon with 360 sides, just as a curve on a screen is drawn from short segments. For odd n the rose has n petals and the walk goes round it twice; for even n it has 2n petals and goes round once. (Demo: d = 1 is the rose itself (n = 4).) The petals themselves are explained on Rose Curves.

d and 360 − d give the same picture

With d' = 360 − d, point k is at θ = −k·d (mod 360) and r = sin(−nkd) = −r. The point (−r, −θ) is the mirror image of (r, θ) in the y-axis. So the picture for 360 − d is the mirror image of the picture for d. But the picture for d is already symmetric: the mirror of its point k is its own point 360 − k, and the mirror of line (k, k + 1) is its line (360 − k − 1, 360 − k). So d and 360 − d draw the same 360 lines, in the opposite order. On the d track the hollow dot marks 360 − d. (Demo: d = 360 − x is the same picture backwards (39 vs 321).)

Two copies of the same pink n = 2 Maurer rose; on the left the first 6 lines for d = 39 in blue, on the right the first 6 lines for d = 321, which are the mirror image in the y-axis
d = 39 and d = 321 draw the same lines; their first jumps are mirror images.

So d only needs to run from 1 to 180 to see every Maurer rose, and Play d 1 → 360 shows each picture twice. (Demo: play d from 1 to 360 (n = 6, rose on); it ends at d = 360, where every jump is a full turn and all 361 points are the centre.)

Pretty values

The well-known pictures come from a d with gcd 1 (or small) and lines that are neither too short (the rose) nor nearly 180° (lines through the middle): n = 6, d = 71; n = 2, d = 39; n = 4, d = 31; n = 7, d = 19. (Demo: n = 6, d = 71, Demo: pretty values.) Joining points of a circle by a fixed jump gives a similar string-art picture: see Times Tables on a Circle, and for curves drawn by rolling circles Spirograph.

What the page leaves out

Roses r = cos(nθ) (a turned copy), fractional n = p/q, d that is not a whole number of degrees (then the walk never closes), more than 361 points, and colouring the lines. The plot window is fixed at −1.12 … 1.12 on both axes.