Solution 1:

It can be made intuitively out of the following observations:

  • The function $\theta \mapsto 1 + \sin(\theta)$ has the property that it is closer to $0$ for $\theta\in [\pi,2\pi]$, and it is closest when $\theta = 3\pi / 2$. This is good for the shape you want, since you want it to be smaller on the "lower" part. See here

enter image description here

  • Once we know this, we still have to add the pointy parts, you can count there are $7$ corners, right? Now, how can we make $7$ corners? Note that $\theta \mapsto 1+ 0.9 \times\cos(8\theta)$ is good in that it expands the radio when $\cos(8\theta) > 0$ and it reduces it when $\cos(8\theta) < 0$. Each corner corresponds actually to a reduce,expand,reduce, and $\theta \mapsto 1+ 0.9 \times\cos(8\theta)$ has exactly $8$ regions like this, but exactly one happens where $1+\sin(\theta)\approx 0$, and so we actually have $7$ such regions. See here

enter image description here

Finally, all of this points to this

enter image description here

The remaining factors, which have much smaller periods, and expand/contract the radio much less, are there just to make the "borders" looks less regular.

Solution 2:

You may do the same as other answer did in details by Maple:

[> with(plots):
  animate(polarplot, [(1+.9*cos(A*t))*(1+.1*cos(A*t))*(.9+0.5e-1*cos(A*t))*(1+sin(t)), t = -Pi .. Pi, thickness = 2], A = 0 .. 15);

enter image description here