Inspired by Mathologer's video about Times Tables. Here, N is the number of points around the circle and M is the number we're multiplying by. Watch the video to understand what it's doing. First change N to see the cardioid shape. Then change M to see other patterns.
I really like the colored results!
And of course after I implemented this I found other people had done it too!
- http://www.qedcat.com/cardioid.cdf (Mathematica file) (linked from the youtube page)
- https://mathiaslengler.github.io/TimesTableWebGL/ (linked from the youtube page)