This nifty graphics gem started with a contribution by Paul Villain to the MATLAB 2022 Mini Hack, currently taking place on MATLAB Central.
modfun(m,n) connects n points, z(j), equally spaced around the complex unit circle, by n+1 straight lines. The j-th line connects z(j+1) to z(mod(j*m,n)+1).
The basic code uses complex arithmetic and is only eight lines long. When the graphics is done with line instead of plot, it is not necessary to use hold on.
function modfun(m,n) init_fig z = exp(2i*pi*(0:n)/n); for j = 0:n zj = [z(j+1),z(mod(j*m,n)+1)]; line(real(zj),imag(zj)) end end
The initialization makes line possible.
function init_fig axis([-1 1 -1 1]) axis square axis off end
This animation of modfun(105,200) has one frame for every five lines.
Match these calls to modfun to the plots in the Gallery.
modfun(88,179) modfun(89,220) modfun(99,200) modfun(101,200) modfun(111,200) modfun(113,188) modfun(126,188) modfun(126,200)
An interactive modfun.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.