Code covered by the BSD License  

Highlights from
seta

image thumbnail
from seta by Orlando Rodríguez
Three-dimensional arrow coordinates.

seta( r1 , r2 )
% Coordinates of a three-dimensional arrow. 
% 
% SINTAX: [x,y,z] = seta(r1,r2)
% 
% Depends on cart2sph and sph2cart.
% 
% Example:  o = [0 0 0]; ex = [1 0 0]; ey = [0 1 0]; ez = [0 0 1];
%          [x1,y1,z1] = seta( o, ex ); 
%          [x2,y2,z2] = seta( o, ey );
%          [x3,y3,z3] = seta( o, ez );
%           fill3(x1,y1,z1,'y',x2,y2,z2,'b',x3,y3,z3,'r'), axis('equal'), view([1 1 1])    

% Written by Orlando Camargo Rodriguez.
 
function [xs,ys,zs] = seta( r1 , r2 ) 

xs = [] ; ys = [] ; zs = [] ; 

r1 = r1(:);
r2 = r2(:);

l1 = length( r1 ); 
l2 = length( r2 ); 

if l1 ~= 3, disp('r1 should be um 3D vector!'), return, end 
if l2 ~= 3, disp('r2 should be um 3D vector!'), return, end 

xs = [0  0     0.9   0.9 1 0.9 0.9  0    0];
zs = [0 -0.05 -0.05 -0.1 0 0.1 0.05 0.05 0]; 
ys = zeros( size( xs ) ) ; 

deltar = r2 - r1; 

[theta,phi,r] = cart2sph(deltar(1),deltar(2),deltar(3)); 

xs = xs*r ; 
ys = ys*r ;
zs = zs*r ; 

[thetas,phis,rs] = cart2sph(xs,ys,zs);
[xs,ys,zs] = sph2cart(thetas+theta,phis+phi,rs); 

xs = xs + r1(1) ; 
ys = ys + r1(2) ;
zs = zs + r1(3) ; 

Contact us at files@mathworks.com