 % Cartoon of a rounded polygon whereby the straight sectors between the

% arcs shrinks from having a length equal to the arc radius down to zero.

% The purpose of this video is simply to show that one must consider only

% the arc sectors when calculating the electrons' angular frequency in a

% storage ring

clear; close all;

prompt = 'Number sides of the polygon [default = 12 (dodecahedron)]: ';

Pnum = input(prompt);

if isempty(Pnum)

Pnum = 12;

end

v = VideoWriter('polygonShrink.mp4','MPEG-4');

v.FrameRate = 30;    % default 30

v.Quality = 100;    % default 75

open(v);

figure('ToolBar','none');

set(0,'defaultfigurecolor',[1 1 1]); % white background

phi = (-pi/Pnum:pi/180:pi/Pnum);

radius = 2; % length of straight

N=40; % number of frames

axisSize = Pnum^2/(2*(Pnum-2)); % size of axes

for j = 0:N % frame loop

newplot;

for i = 0:Pnum-1 % draw each sector of rounded dodecagon

axis([-axisSize axisSize -axisSize axisSize]);

axis square; % square plot

axis off;

straight = radius*(N - j)/N; % length of straight. Shrinks to zero

theta0 = (2*pi/Pnum)*i; % angle of centre line for each sector

L1 = straight/(2*tan(pi/Pnum));

L = L1 + radius; % distance from centre of straight to geometric centre

x0 = L*sin(theta0); % x-coordinate of centre of straight

y0 = L*cos(theta0); % y-coordinate of centre of straight

straightStartx = x0 - (straight/2)*cos(theta0); % x-coord of start of straight

straightStarty = y0 + (straight/2)*sin(theta0); % y-coord of start of straight

straightEndx = x0 + (straight/2)*cos(theta0); % x-coord of end of straight

straightEndy = y0 - (straight/2)*sin(theta0); % y-coord of end of straight

straightx = [straightStartx straightEndx];

straighty = [straightStarty straightEndy];

hold on;

plot(straightx,straighty,'color',[1,0,0], 'LineWidth', 8.0); % plot in red

phiNow = phi + theta0 + pi/Pnum; % angular range of the arc

arcCentre = straight/(2*sin(pi/Pnum)); % Distance geometric centre to origin of arc

arcCentrex = arcCentre*sin(theta0 + pi/Pnum); % x-coord of arc origin

arcCentrey = arcCentre*cos(theta0 + pi/Pnum); % x-coord of arc origin

arcX = arcCentrex + radius*sin(phiNow); % set of x-coords for arc

arcY = arcCentrey + radius*cos(phiNow); % set of y-coords for arc

plot(arcX,arcY,'color',[0,0,1], 'LineWidth', 8.0); % plot in blue

hold off;

end

frame = getframe(gcf);

writeVideo(v,frame);

hold off;

end

% Output the movie as an mpg file

close(v);

Cartoon of a rounded polygon shrinking to a circle
Matlab code