# 在matlab 画箭头

## [转载]在matlab 画箭头

#### Two-Dimensional Quiver Plots

Example 1. (cf.  Joukowski Airfoil Transformation)

t=10*pi/180; u=0.1; v=0.1; r=1.1; tol=8e-2;s=u+i*v; k=2*r*sin(t); w=exp(i*t);[x,y]=meshgrid(-2.5:0.1:3.5,-3:0.1:3);z=x+i*y; z(abs(z-s)<r-tol)=NaN;f=w*z+exp(-i*t)*r^2./(z-s)+i*k*log(z);a=0:0.1:2*pi; zc=r*(cos(a)+i*sin(a))+s;c1=-1.5; c2=2.5; c3=c2-c1;c=contour(x,y,imag(f),c1:c3/16:c2);set(gca,'color',0.5*[1 1 1])hold on, daspect([1 1 1])fill(real(zc),imag(zc),'y'), colorbarmap=get(gcf,'colormap');domain=0:1/(size(map,1)-1):1; m=1;while m<length(c), n=m+c(2,m);if c(2,m)>9, p=c(:,m+1:n)';    if p(end,1)>p(1,1), p=flipud(p); end    ndx=10:10:length(p);    p2=p(ndx,:); p1=p(ndx-3,:);    cc=interp1(domain,map,(c(1,m)-c1)/c3);    set(gca,'ColorOrder',cc)    arrow3(p1,p2,'0o',0.8)end, m=n+1;end, hold off

Example 2. (cf.  Quiver)

[x,y]=meshgrid(-1:1/21:1);z=x.*exp(-x.^2-y.^2);[c,h]=contour(x,y,z);set(h,'EdgeColor',0.45*[1 1 1])ndx=1:3:length(x);x=x(ndx,ndx); y=y(ndx,ndx); z=z(ndx,ndx);[u,v]=gradient(z,1/7);p1=[x(:),y(:)]; u=u(:); v=v(:);m=abs(u+i*v); % gradient magnitudedaspect([1 1 1]), set(gca,'color',0.3*[1 1 1])hold on, colormap hot, scale=0.4;arrow3(p1,p1+scale*[u,v],'|',min(1.25*m,0.85))hold off, h=colorbar;set(h,'YTickLabel',num2str(str2num(get(h,...'YTickLabel'))/scale))

Example 3. (cf.  Two-Dimensional Quiver Plots)

[x,y,z]=peaks(-2:0.05:2);contour(x,y,z,10); h=gca;ndx=1:4:length(x);x=x(ndx,ndx); y=y(ndx,ndx); z=z(ndx,ndx);[u,v]=gradient(z,0.2);p1=[x(:),y(:)]; u=u(:); v=v(:);m=abs(u+i*v); % gradient magnitudehold on, daspect([1 1 1]), scale=0.025;arrow3(p1,p1+scale*[u,v],'|',0.9*m/max(m))hold off, title('Dual Colormap')h1=colorbar; h2=copyobj(h1,gcf);set(h,'color',0.4*[1 1 1],...'position',get(h,'position')+[0.05 0 0 0])% ----------------------------------------------------- Right Colorbarp=get(h1,'position');set(h1,'position',[0.87,p(2),0.05,p(4)],...'YTickLabel',num2str(str2num(get(h1,...'YTickLabel'))/scale))                               % freeze labelsmap=colormap; cdata=reshape(map,size(map,1),1,3);set(get(h1,'children'),'cdata',cdata)              % freeze colorsset(get(h1,'title'),'string','Gradient')% ------------------------------------------------------ Left Colorbarcaxis auto, colorbar, colormap autumnset(h2,'YAxisLocation','left',...'position',[0.08,p(2),0.05,p(4)])set(get(h2,'title'),'string','Contour')

#### Three-Dimensional Quiver Plots

Example 4. (cf.  Quiver3)

[x,y]=meshgrid(-2:0.25:2,-1:0.25:1);z=x.*exp(-x.^2-y.^2);surf(x,y,z,'EdgeColor','none')axis([-2.5 2.5 -1.5 1.5 -1 1]), daspect([1 1 1])set(gca,'CameraViewAngle',7)[u,v,w]=surfnorm(x,y,z);p1=[x(:),y(:),z(:)]; N=[u(:),v(:),w(:)];hold onarrow3(p1,p1+0.5*N,'1.5_b')hold off, colormap springlight('position',[-1 -1 -1],'style','local')light('position',[0 1 1]), lighting gouraud

Example 5. (cf.  Three-Dimensional Quiver Plots)

vx=2; vy=3; vz=10; a=-32; t=(0:.1:1)';x=vx*t; y=vy*t; z=vz*t+1/2*a*t.^2;r=[x,y,z]; v=gradient(r')';axis([0 3 0 4 -10 2]), pbaspect([2 1 1])hold on, grid on, view([70 18])arrow3(r,r+v,'b',0.9)hold off

#### Cone Plots

Example 6. (cf.  Coneplot)

load wind, wind_speed=sqrt(u.^2+v.^2+w.^2);xmin=min(x(:)); xmax=max(x(:));ymin=min(y(:)); ymax=max(y(:));zmin=min(z(:));hsurfaces=slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);set(hsurfaces,'FaceColor','interp','EdgeColor','none',...              'AmbientStrength',0.6)hold on, daspect([2,2,1]), view(30,40), axis tightxrange=linspace(xmin,xmax,8);yrange=linspace(ymin,ymax,8);[cx cy cz]=meshgrid(xrange,yrange,3:4:15);ui=interp3(x,y,z,u,cx,cy,cz);vi=interp3(x,y,z,v,cx,cy,cz);wi=interp3(x,y,z,w,cx,cy,cz);m=sqrt(ui.^2+vi.^2+wi.^2); m=m(:)/30;p1=[cx(:),cy(:),cz(:)]; p2=[ui(:),vi(:),wi(:)];hcones=arrow3(p1,p2,'r',m,3*m,'cone');set(hcones,'DiffuseStrength',0.8)hold off, axis offcamproj perspective, camzoom(1.2)camlight right, lighting phong

Example 7. (cf.  Vector Field Displayed with Cone Plots)

load wind, wind_speed=sqrt(u.^2+v.^2+w.^2);hiso=patch(isosurface(x,y,z,wind_speed,40),...          'FaceColor','red','EdgeColor','none');isonormals(x,y,z,wind_speed,hiso)hcap=patch(isocaps(x,y,z,wind_speed,40),...          'FaceColor','interp','EdgeColor','none',...          'AmbientStrength',0.6);hold on, colormap hsv, daspect([1,1,1]), view(65,45)[f verts]=reducepatch(isosurface(x,y,z,wind_speed,30),0.07);cx=verts(:,1); cy=verts(:,2); cz=verts(:,3);ui=interp3(x,y,z,u,cx,cy,cz);vi=interp3(x,y,z,v,cx,cy,cz);wi=interp3(x,y,z,w,cx,cy,cz);m=sqrt(ui.^2+vi.^2+wi.^2); m=m(:)/40;p1=[cx(:),cy(:),cz(:)]; p2=[ui(:),vi(:),wi(:)];h1=arrow3(p1,p2,'b',m,3*m,'cone');xrange=linspace(min(x(:)),max(x(:)),10);yrange=linspace(min(y(:)),max(y(:)),10);[cx,cy,cz]=meshgrid(xrange,yrange,3:4:15);ui=interp3(x,y,z,u,cx,cy,cz);vi=interp3(x,y,z,v,cx,cy,cz);wi=interp3(x,y,z,w,cx,cy,cz);m=sqrt(ui.^2 + vi.^2 + wi.^2); m=m(:)/50;p1=[cx(:),cy(:),cz(:)]; p2=[ui(:),vi(:),wi(:)];h2=arrow3(p1,p2,'g',m,3*m,'cone');hold off, axis tight, box onset(gca,'xtick',[],'ytick',[],'ztick',[])camproj perspective, camzoom(1.2)camlight(-45,45), lighting phong

#### Feather Plots

Example 8. (cf.  Feather)

theta=(-90:10:90)'*pi/180;n=length(theta); p1=[1:n;zeros(1,n)]';r=2*ones(n,1); [u,v]=pol2cart(theta,r);plot([1 n],[0 0],'r')axis([0 20 -2 2]), daspect([8 2 1])hold on, grid onarrow3(p1,p1+[u,v],'r',0.9)hold off

Example 9. (cf.  Plotting Complex Numbers)

t=(0:0.5:10)'; s=0.05+i; Z=exp(-s*t);n=length(Z); p1=[1:n;zeros(1,n)]';plot([1 n],[0 0],'b')axis([0 22 -1 1]), daspect([8 1 1])hold on, grid onarrow3(p1,p1+[real(Z),imag(Z)],'b',0.8)hold off

#### Compass Plots

Example 10. (cf.  Compass Plots)

wdir =[45 90 90 45 360 335 360 270 335 270 335 335];knots=[ 6 6 8 6   5   9   8   8   9 10 14 12];[x,y]=pol2cart(wdir*pi/180,knots);polar(0,15), axis(15.9*[-1 1 -1 1])hold onarrow3(zeros(length(x),2),[x',y'],'r',1.25)hold off

Example 11. (cf.  Compass)

Z=eig(randn(20)); m=abs(Z);R=ceil(max(m)); r=R+0.3;polar(0,R), axis(r*[-1 1 -1 1])hold onarrow3(zeros(length(Z),2),[real(Z),imag(Z)],'b',1.75*m/R)hold off

#### Reference Frames

Example 12. Coordinate Axes

p=[4 2 1]; axis([-6 6 0 5 -1 1])pbaspect([2 1.5 1]), view(55,15)hold onarrow3(repmat([p(1:2),0],4,1),...[0 p(2) 0;p(1) 0 0;p;0 0 0],'--o',0,0,0.5)arrow3(zeros(3),diag([7,5,1]),'o')arrow3([0 0 0],p,'2.5s',1.5,[],0)hold off, axis off, camlight leftset(gca,'CameraViewAngle',4)text(7.1,0,0,'X'), text(0,5.05,0,'Y')text(0,0,1,'Z','VerticalAlignment','bottom',...'HorizontalAlignment','center')

Example 13. Eigenvectors

n=500; % generate test datanewz=[ 1 1 1]/sqrt(3);newy=[ 0 -1 1]/sqrt(2);newx=cross(newy,newz);R=[newx;newy;newz]; % rotation matrixU=randn(n,3)*diag([1,2,3])*R;u=U(:,1)+10; v=U(:,2)+20; w=U(:,3)+30;% plot eigenvectors with mean originplot3(u,v,w,'r.')axis([0 20 10 29 20 40]), daspect([1 1 1])view([-70,15]), set(gca,'CameraViewAngle',8)hold on, grid onmu=repmat(mean([u,v,w]),3,1);[V,D]=eig(cov([u,v,w]));p=9*V'+mu;arrow3(mu,p,[],1.25,[],0)p=p+ones(3);text(p(1,1),p(1,2),p(1,3),'bfU')text(p(2,1),p(2,2),p(2,3),'bfV')text(p(3,1),p(3,2),p(3,3),'bfW')hold off

Example 14. (cf.  Frenet)

z=(0:2/99:2)'; t=2*pi*z; r=2+z;x=r.*cos(t); y=r.*sin(t);R=[x,y,z]; dR=gradient(R')';m=repmat(sqrt(sum(dR.*dR,2)),1,3);T=dR./m; dT=gradient(T')';m=repmat(sqrt(sum(dT.*dT,2)),1,3);N=dT./m; B=cross(T,N);plot3(x,y,z,'color',0.5*[1 1 1])axis([-4 4 -4 4 0 2.5])hold on, grid on, pbaspect([1 1 1])set(gca,'CameraViewAngle',7)plot3(0,0,0,'r'), plot3(0,0,0,'color',[0 0.5 0])plot3(0,0,0,'b')legend('Curve','Tangent','Normal','Binormal',2)ndx=1:4:length(x); R=R(ndx,:);arrow3(R,R+1.4*T(ndx,:),'r',0.9)arrow3(R,R+1.4*N(ndx,:),'e',0.9)arrow3(R,R+0.4*B(ndx,:),'b',0.9)hold off, view(-50,5)set(gcf,'renderer','zbuffer')

#### Named Colors

Example 15. Named Color Table

arrow3('colors',0.4) % 24 named colors with 44 adjustable shades

Color Equivalencies
 ColorOrder Arrow3
 Simulink Arrow3
Color1 BlueLightBlue aZure
Color2 EvergreenDarkGreen Asparagus
Color3 RedOrange kumQuat
Color4 Sky blueGray Light gray
Color5 Violet
Color6 Pear
Color7 Dark gray

12-26

12-31
10-15
03-01 556
11-07 1万+
12-30 990
07-08
04-04
10-30
04-30 1786
03-25 1万+
12-12 4861
09-14 1万+
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客