在matlab 画箭头
2017-08-05 17:46
351 查看
非常实用的文章原文地址:在matlab 画箭头作者:纯情小郎君完整见链接http://www.mathworks.com/matlabcentral/fx_files/14056/1/content/arrow3_examples.html
Two-dimensional Quiver Plots
Example 1.
Example 2.
Example 3.
Three-Dimensional Quiver Plots
Example 4.
Example 5.
Cone Plots
Example 6.
Example 7.
Feather Plots
Example 8.
Example 9.
Compass Plots
Example 10.
Example 11.
Reference Frames
Example 12.
Example 13.
Example 14.
Named Colors
Example 15.
Update (Modify and Restore)
Example 16.
Two-Dimensional Quiver
Example 1. (cf.
Joukowski Airfoil Transformation)
Example 1. Joukowski Airfoil
Example 2. (cf.
Quiver)
Example 2. Surface
Example 3. (cf.
Two-Dimensional Quiver Plots)
Example 3. Dual Colormap
Three-Dimensional Quiver
Example 4. (cf.
Quiver3)
Example 4. Surface Normals
Example 5. (cf.
Three-Dimensional Quiver Plots)
Example 5. Velocity Vectors
Coneplot)
Example 6. Wind Speed and
Example 7. (cf.
Vector Field Displayed with Cone Plots)
Example 7. Wind Speed and
Feather)
Example 8. Feather Plot
Example 9. (cf.
Plotting Complex Numbers)
Example 9. Complex Number
Compass Plots)
Example 10. Wind Speed and
Example 11. (cf.
Compass)
Example 11. Complex Number
Example 12. Coordinate Axes
Example 13. Eigenvectors
Example 13. Eigenvectors
Example 14. (cf.
Frenet)
Example 14. Frenet Frames
Example 15. Named Color
ARROW3
EXAMPLES (R13)
Two-dimensional Quiver PlotsExample 1.
Example 2.
Example 3.
Three-Dimensional Quiver Plots
Example 4.
Example 5.
Cone Plots
Example 6.
Example 7.
Feather Plots
Example 8.
Example 9.
Compass Plots
Example 10.
Example 11.
Reference Frames
Example 12.
Example 13.
Example 14.
Named Colors
Example 15.
Update (Modify and Restore)
Example 16.
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'), colorbar map=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
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 magnitude daspect([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))
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 magnitude hold 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 Colorbar p=get(h1,'position'); set(h1,'position',[0.87,p(2),0.05,p(4)],... 'YTickLabel',num2str(str2num(get(h1,... 'YTickLabel'))/scale)) % freeze labels map=colormap; cdata=reshape(map,size(map,1),1,3); set(get(h1,'children'),'cdata',cdata) % freeze colors set(get(h1,'title'),'string','Gradient') % ------------------------------------------------------ Left Colorbar caxis auto, colorbar, colormap autumn set(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 on arrow3(p1,p1+0.5*N,'1.5_b') hold off, colormap spring light('position',[-1 -1 -1],'style','local') light('position',[0 1 1]), lighting gouraud
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 tight xrange=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 off camproj perspective, camzoom(1.2) camlight right, lighting phong
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 on set(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 on arrow3(p1,p1+[u,v],'r',0.9) hold off
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 on arrow3(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 on arrow3(zeros(length(x),2),[x',y'],'r',1.25) hold off
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 on arrow3(zeros(length(Z),2),[real(Z),imag(Z)],'b',1.75*m/R) hold off
Reference Frames
Example 12. Coordinate Axesp=[4 2 1]; axis([-6 6 0 5 -1 1]) pbaspect([2 1.5 1]), view(55,15) hold on arrow3(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 left set(gca,'CameraViewAngle',4) text(7.1,0,0,'X'), text(0,5.05,0,'Y') text(0,0,1,'Z','VerticalAlignment','bottom',... 'HorizontalAlignment','center')
n=500; % generate test data newz=[ 1 1 1]/sqrt(3); newy=[ 0 -1 1]/sqrt(2); newx=cross(newy,newz); R=[newx;newy;newz]; % rotation matrix U=randn(n,3)*diag([1,2,3])*R; u=U(:,1)+10; v=U(:,2)+20; w=U(:,3)+30; % plot eigenvectors with mean origin plot3(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 on mu=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
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 Tablearrow3('colors',0.4) % 24 named colors with 44 adjustable shades
Color Equivalencies | |||||
|
| ||||
Color1 | Blue | LightBlue | aZure | ||
Color2 | Evergreen | DarkGreen | Asparagus | ||
Color3 | Red | Orange | kumQuat | ||
Color4 | Sky blue | Gray | Light gray | ||
Color5 | Violet | ||||
Color6 | Pear | ||||
Color7 | Dark gray |
相关文章推荐
- Matlab&nbsp;fmincon函数用法
- Matlab ML Tools
- matlab 中有关矩阵逆的一些运算
- matlab&nbsp;的&nbsp;colormap&nbsp;函数详…
- MATLAB中的 anova1()函数&nbs…
- matlab train 神经网络…
- matlab 规划问题 利用蒙…
- matlab rref函数 将矩阵…
- matlab meshgrid函数 生成网格矩阵
- Matlab 超前滞后相关,自相关xcorr
- matlab 蠓虫分类问题 &n…
- MATLAB inline函数 在程…
- matlab subspace函数 求…
- matlab colorbar 绘图中显示颜色条
- matlab radon函数 图像的radon变换
- 【MATLAB】matlab eig 函数…
- matlab&nbsp;图像处理的几个例子[…
- MATLAB&nbsp;中NORM运用
- MATLAB中的 randperm()函数&n…
- matlab newlvq函数 建立…