function t = arrow(u)
[x y z] = cylinder(0.02);
h(1) = surface(x,y,z,'FaceColor','blue');
[x y z] = cylinder([0.3 0]);
h(2) = surface(x,y,z,'FaceColor','blue');
t = hgtransform('Parent',gca);
t2 = hgtransform('Parent',t);
set(h(1),'Parent',t);
set(h(2),'Parent',t2);
S = makehgtform('scale',0.2);
T = makehgtform('translate',[0 0 0.9]);
set(t2,'Matrix',T*S);
if nargin>0
up = [0 0 1];
ux = u/norm(u);
pn = cross(up,ux);
pn = pn/norm(pn);
qn = cross(pn,up);
z = complex(dot(ux,up),dot(ux,qn));
phi = angle(z);
R = makehgtform('axisrotate',pn,phi);
set(t,'Matrix',R);
end