%多力的合成函数
function fun(f,theta)
th=theta*pi/180;
fx=f.*cos(th);fy=f.*sin(th);
fxc=cumsum(fx);fyc=cumsum(fy);
fxm=fxc(end);fym=fyc(end);%最终的和;
fxc=[0,fxc(1:end-1)];fyc=[0,fyc,fyc(1:end-1)];
f=sqrt(fxm^2+fym^2);
th=atan2(fym,fxm);theta=th*180/pi;
figure
quiver(fxc,fyc,fx,fy,0,'Linewidth',2)%0表示不用自动刻度
grtd on,axis equal
hold on,quiver(0,0,fxm,fym,0,'Linewidth',2)%画合力箭杆
quiver(0,0,0,fym,0,'Linewidth',2)
quiver(0,0,fxm,0,0,'Linewidth',2)
plot([0,fxm,fxm],[fym,fym,0],'--')
fs=16;title('力的合成','FontSize',fs)
xlabel('\itf_x\rm/N','FontSize',fs),ylabel('\itf_y\rm/N','FontSize',fs)
text=(fxm,0,['\itf_x\rm=',num2str(f),'N'],'FontSize',fs,'HorizontalAlignment','Right')
text=(0,fym,['\itf_y\rm=',num2str(fxm),'N'],'FontSize',fs)
text=(fxm,fym,['\itf\rm=',num2str(f),'N'],'FontSize',fs,'HorizontalAlignment','Right')
function fun(f,theta)
th=theta*pi/180;
fx=f.*cos(th);fy=f.*sin(th);
fxc=cumsum(fx);fyc=cumsum(fy);
fxm=fxc(end);fym=fyc(end);%最终的和;
fxc=[0,fxc(1:end-1)];fyc=[0,fyc,fyc(1:end-1)];
f=sqrt(fxm^2+fym^2);
th=atan2(fym,fxm);theta=th*180/pi;
figure
quiver(fxc,fyc,fx,fy,0,'Linewidth',2)%0表示不用自动刻度
grtd on,axis equal
hold on,quiver(0,0,fxm,fym,0,'Linewidth',2)%画合力箭杆
quiver(0,0,0,fym,0,'Linewidth',2)
quiver(0,0,fxm,0,0,'Linewidth',2)
plot([0,fxm,fxm],[fym,fym,0],'--')
fs=16;title('力的合成','FontSize',fs)
xlabel('\itf_x\rm/N','FontSize',fs),ylabel('\itf_y\rm/N','FontSize',fs)
text=(fxm,0,['\itf_x\rm=',num2str(f),'N'],'FontSize',fs,'HorizontalAlignment','Right')
text=(0,fym,['\itf_y\rm=',num2str(fxm),'N'],'FontSize',fs)
text=(fxm,fym,['\itf\rm=',num2str(f),'N'],'FontSize',fs,'HorizontalAlignment','Right')
text=(0,0,['\it\theta\rm=',num2str(theta),'N'],'FontSize',fs)
函数功能
使用箭头绘制矢量图。例如,该函数可用于绘制梯度图。
语法格式
quiver(x,y,u,v)
该函数使用箭头来直观的显示矢量场。该调用格式表示通过在(x, y)指定的位置绘制小箭头来表示以该点为起点的向量(u,v)。
x、y、u、v的行数、列数必须对应相等。即x、y、u、v必须是同型矩阵。
需要注意的是,如果x、y不是矩阵,MATLAB会调用meshgrid函数将其扩展。然后再调用quiver函数。在这种情况下,x中元素的个数必须等于u、v的列数,y中元素个数必须等于u、v的行数(否则使用meshgrid扩展后无法满足x、y、u、v是同型矩阵,具体参见meshgrid函数)。
quiver(u,v)
在x-y面上绘制向量(u,v),由于没有指定向量的起点,所以,matlab将在x-y面上均匀的取若干个点作为起点。
quiver(...,scale)
自动缩放箭头大小以使它适合网格的大小,然后根据scale因子拉伸这些箭头。例如,scale = 2则使箭头的相对长度增大为原来的2倍,scale = 0.5则使箭头的长度缩短一半。scale = 0则关闭箭头大小的自动缩放。也可以在箭头绘制完成后, 点击图形窗口工具栏中的箭头按钮打开Plot Edit工具, 使用鼠标选择绘图窗口中的箭头对象, 右键快捷菜单打开对象的属性编辑器, 进而调整箭头长度、线型等。
quiver(...,LineSpec)
其中LineSpec参数指定了线型、标志样式、颜色。quiver函数会把指定标志绘制在向量的起点。
quiver(...,LineSpec,'filled')
使用LineSpec指定的标志进行填充。
实例:
>> x=1:10;
>> [x1,y1]=meshgrid(x,10-x);
>> quiver(x1,y1)
转自:http://blog.sina.com.cn/s/blog_728fa7830101hzl1.html