matlab箭头端头函数,[zz]在matlab 画箭头-arrow3.m 和matlab自带的函数quiver3.m

(R13)

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)

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

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 1. Joukowski Airfoil Transformation

a4c26d1e5885305701be709a3d33442f.png

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

Example 2. Surface Gradients

a4c26d1e5885305701be709a3d33442f.png

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 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')

Example 3. Dual Colormap

a4c26d1e5885305701be709a3d33442f.png

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

Example 4. Surface Normals

a4c26d1e5885305701be709a3d33442f.png

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

Example 5. Velocity Vectors

a4c26d1e5885305701be709a3d33442f.png

Cone PlotsExample 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

Example 6. Wind Speed and Direction

a4c26d1e5885305701be709a3d33442f.png

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 on

set(gca,'xtick',[],'ytick',[],'ztick',[])

camproj perspective, camzoom(1.2)

camlight(-45,45), lighting phong

Example 7. Wind Speed and Direction

a4c26d1e5885305701be709a3d33442f.png

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

Example 8. Feather Plot

a4c26d1e5885305701be709a3d33442f.png

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 on

arrow3(p1,p1+[real(Z),imag(Z)],'b',0.8)

hold off

Example 9. Complex Number Plot

a4c26d1e5885305701be709a3d33442f.png

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

Example 10. Wind Speed and Direction

a4c26d1e5885305701be709a3d33442f.png

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 on

arrow3(zeros(length(Z),2),[real(Z),imag(Z)],'b',1.75*m/R)

hold off

Example 11. Complex Number Plot

a4c26d1e5885305701be709a3d33442f.png

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 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')

Example 12. Coordinate Axes

a4c26d1e5885305701be709a3d33442f.png

Example 13.

Eigenvectors

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

Example 13. Eigenvectors

a4c26d1e5885305701be709a3d33442f.png

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')

Example 14. Frenet Frames

a4c26d1e5885305701be709a3d33442f.png

Named ColorsExample 15. Named Color

Table

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

shades

Example 15. Named Color Table

a4c26d1e5885305701be709a3d33442f.png

Color Equivalencies

ColorOrder Arrow3 Simulink  Arrow3 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值