Cartoon of flexing a planar x-ray mirror to vary the bending radius Matlab code 

% Cartoon of flexing a mirror to change the bending radius 

 

clear; close all

vid = VideoWriter('flexedMirror.mp4','MPEG-4'); 

vid.FrameRate = 60;    % Default 30

vid.Quality = 100;    % Default 75

open(vid); 

 

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

figure('units','pixels','position',[0 0 1920 1080],'ToolBar','none'); 

 

tighten = 20:20:4000;

relax = 4000:-20:20;

tightenrelax = [0.1 tighten relax 0.1]; 

for i = tightenrelax

    hold off 

    r = 1000000/i; % Vary the radius of arc between 50 m and 250 mm 

    l = 180; % Set the length of arc to 180 mm

    crcm = 2*pi*r;                                     % Full circle circumference

    arcfrac = l/crcm;                                  % Arc length fraction of circumference

    angfrac = 2*pi*arcfrac;                            % Angle fraction of circumference (rad)

    halfang = 180*arcfrac;

    angv = linspace(-pi/2-angfrac/2, -pi/2+angfrac/2); % Angle vector in radians 

    x = r*cos(angv);

    y = r*sin(angv) + r;

    plot(x, y, 'Color', [37 44 94]/256, 'LineWidth',32)

    hold on

    axis equal 

    axis off 

    axis([-150  150  -20  150]) 

    str1 = 'Subtended angle = +/- ';

    str2 = num2str(halfang,'% 4.2f'); 

    str3 = '^{o}';

    strTot = [str1,str2,str3]; 

    hText = text(0, 100, strTot, 'FontSize',22,'HorizontalAlignment', 'center');

 

    frame = getframe(gcf);

    writeVideo(vid,frame); 

    hold on 

end

% Output the movie as an mpg file

close(vid);