image thumbnail
from Eular angles GUI by Maxim Vedenyov
Eular angles visualization and connection with axis-angle rotation.

an=arc_data(ang,R,h,Rt)
function an=arc_data(ang,R,h,Rt)
% fast data for arc drawning
% ang - angle
% R - radius
% h - tip height
% Rt - text radius

N=50; % resolution 50 - points
st=2*pi/N; 
% al=0:st:2*pi;
% x=cos(al);
% y=sin(al);

if ang>=0
    sang=1;
else
    sang=-1;
end
ang=abs(ang);

x=[1,0.992114701314478,0.968583161128631,0.929776485888251,0.876306680043864,0.809016994374948,0.728968627421412,0.63742398974869,0.535826794978996,0.425779291565073,0.309016994374947,0.187381314585725,0.062790519529313,-0.062790519529313,-0.187381314585725,-0.309016994374948,-0.425779291565073,-0.535826794978997,-0.63742398974869,-0.728968627421412,-0.809016994374947,-0.876306680043864,-0.929776485888252,-0.968583161128631,-0.992114701314478,-1,-0.992114701314478,-0.968583161128631,-0.929776485888252,-0.876306680043864,-0.809016994374948,-0.728968627421412,-0.63742398974869,-0.535826794978997,-0.425779291565073,-0.309016994374948,-0.187381314585726,-0.062790519529313,0.062790519529313,0.187381314585724,0.309016994374947,0.425779291565073,0.535826794978997,0.637423989748689,0.728968627421411,0.809016994374947,0.876306680043864,0.929776485888252,0.968583161128631,0.992114701314478,1];
y=[0,0.125333233564304,0.248689887164855,0.368124552684678,0.481753674101715,0.587785252292473,0.684547105928689,0.770513242775789,0.844327925502015,0.90482705246602,0.951056516295154,0.982287250728689,0.998026728428272,0.998026728428272,0.982287250728689,0.951056516295154,0.90482705246602,0.844327925502015,0.770513242775789,0.684547105928688,0.587785252292473,0.481753674101715,0.368124552684678,0.248689887164855,0.125333233564304,0,-0.125333233564304,-0.248689887164855,-0.368124552684678,-0.481753674101715,-0.587785252292473,-0.684547105928688,-0.770513242775789,-0.844327925502015,-0.904827052466019,-0.951056516295154,-0.982287250728688,-0.998026728428272,-0.998026728428272,-0.982287250728689,-0.951056516295154,-0.90482705246602,-0.844327925502015,-0.77051324277579,-0.684547105928689,-0.587785252292473,-0.481753674101715,-0.368124552684678,-0.248689887164855,-0.125333233564305,-0];

ind=floor(ang/st)+1;

dang=ang-(ind-1)*st;




v=[-y(ind);   % tip unit vector
    x(ind)];


xe=x(ind)+dang*v(1);
ye=y(ind)+dang*v(2);

Ml=[R*x(1:ind)      R*xe;
    sang*R*y(1:ind) sang*R*ye];

re=[xe;
    ye];

r=0.3*h;

r1=R*re-v*h+re*r;
r2=R*re-v*h-re*r;

Mt=[r1(1)       R*xe       r2(1);
    sang*r1(2)  sang*R*ye  sang*r2(2)];

% for text coordinaties
indt=floor((ang/2)/st)+1;
dangt=(ang/2)-(indt-1)*st;

vt=[-y(indt);   
    x(indt)];

an={Ml,Mt,[Rt*(x(indt)+dangt*vt(1)), sang*Rt*(y(indt)+dangt*vt(2))]};

Contact us at files@mathworks.com