% 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) ;