建议使用area函数,莪自己编了一个关于太极的MATLAB小程序,你可以参考一下
clc,clear
hold on
t1=0:pi/100:2*pi;
x1=cos(t1)*4;
y1=sin(t1)*4;
t2=0:pi/20:pi;
x2=cos(t2)*2+2;
y2=sin(t2)*2;
t3=pi:pi/20:2*pi;
x3=cos(t3)*2-2;
y3=sin(t3)*2;
t4=0:pi/20:2*pi;
x4=cos(t4)+2;
y4=sin(t4);
t5=0:pi/20:2*pi;
x5=cos(t5)-2;
y5=sin(t5);
x6=[x1(:,1:101) x2 x3];
y6=[y1(:,1:101) y2 y3];
x7=[x1(:,101:201) x2 x3];
y7=[y1(:,101:201) y2 y3];
plot(x1,y1,'k')
area(x6,y6,'facecolor','k','linestyle','none')
area(x5,y5,'facecolor','w','linestyle','none')
area(x7,y7,'facecolor','w','linestyle','none')
area(x4,y4,'facecolor','k','linestyle','none')
希望采纳 下图是效果图
用MatLab在两条曲线之间填充颜色,比较难以实现,这里提供一个简单的程序作为参考:
x=[1 2 3 4 5 6 7];
Y1=[2 3 4 5 6 7 8];
Y2=[3 4 5 6
7 8 9];
k=1;
for
i=0:length(x)-1
x1(k)=x(length(x)-i);
Z2(k)=Y2(length(x)-i);
k=k+1;
end
fill([x x1],[Y1 Z2],'b')
% fill
也可以换成patch
注:fill命令的含义是在某一个多边形区域内填充指定颜色,即命令中“b”来表示。fill([x
x1],[Y1 Z2],'b')具体含义为,[x x1]表示一个一个横向量【1 2 3 4 5 6 7 7 6 5 4 3 2
原代码贴出来,看看....