流锥图用圆锥体表现体中各点处的向量。用coneplot函数在三维向量场中用流锥体绘速率向量图。调用格式为:
coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz) 用流锥体绘速率向量图。流锥体指向速率向量的方向,其长度与速率向量的大小成比例。
X,Y,Z 定义向量场的坐标。
U,V,W 定义向量场。这些数组必须具有相同的大小、单调性和三维特征。
Cx,Cy,Cz 定义向量场中流锥体的位置。
coneplot(U,V,W,Cx,Cy,Cz) (忽略X,Y和Z变量) 假设[X,Y,Z]=meshgrid(1:n,1:m,1:p),其中,[m,n,p]= size(U)。
coneplot(...,s) MATLAB自动确定流锥体的显示比例s,使它们能拟合图形的大小。如果没有指定s的大小,MATLAB将它设为1。令s=0,则不自动设置流锥体的比例。
coneplot(...,color) 在向量场中进行color数组插值,并根据插值的值来确定流锥体的颜色。color的大小必须与U,V,W数组的大小相同。该选项只与流锥体一起使用。
coneplot(...,'quiver') 用箭头代替流锥体绘图。
coneplot(...,'method') 指定插值方法。可选方法包括:线性插值、二次插值、三次插值和最小距离插值等。默认时选用线性插值。
coneplot(X,Y,Z,U,V,W,'nointerp') 不将流锥的位置插值到三维区域中。流锥在由X,Y和Z确定的位置绘制,其方位由U,V,W确定。数组X,Y,Z,U,V和W必须大小相同。
h=coneplot(...) 返回绘流锥体的patch对象的句柄。可以使用set命令改变流锥体的属性。
本例用4维函数生成4维体数据x,y,z,vv,然后用vv得到x,y,z 3个方向上的梯度。指定起点sx,sy,sz,使用coneplot函数生成流锥图。
>> [x,y,z]=meshgrid(-2:.2:2); %生成绘图数据
>> vv=x.^2+y.^2+z.^2-x.*y+z+1;
>> [u,v,w]=gradient(vv); %3个方向的梯度
>> [sx,sy,sz]=meshgrid(-2:2); %起点
>> hc=coneplot(x,y,z,u,v,w,sx,sy,sz); %绘制流锥图
>> view(3) %三维视图
>> camlight %添加光照
>> hc.EdgeColor=27;none'; %流锥小面边线无色
>> hc.FaceColor='r'; %流锥小面红色
生成图6-2。
图6-2 流锥图