在Matlab中绘制多个多边形,没有边框

时间:2014-12-03 17:17:52

标签: matlab graphics 2d

我正在创建一个包含许多多边形的图形,这些多边形可以在Matlab中重叠。我不希望任何形状的边框,只有半透明的填充。我能够使用以下方式获得第一个遵守此请求的形状:

fill(xv,yv,'blue','FaceAlpha',0.1,'EdgeColor','None','LineStyle','none');hold on;

但是,在循环中绘制的每个后续形状都会忽略此样式,而是在彩色边框中循环。我能够使用set命令覆盖颜色循环,但这仍然绘制边框...我想要任何边框。边界无法绘制,因为我们使用了形状的重叠属性,任何边界的存在都会扰乱我们模拟的本质。

以下是完整的代码:

for count = 1:92
 x=randn*clustering;
 y=randn*clustering;
 angle=randn*360;
 rectangle(width,height,x,y,angle);
end

function rectangle(w,h,x,y,angle)
 %Define the rectangle
 xv=[x x+w x+w x x];
 yv=[y y y+h y+h y];
 %Define the rotation transformation matrix
 transform=[cos(angle) -sin(angle);sin(angle) cos(angle)];
 %Define the translation to origin transform
 xcenter=x+.5*w;
 ycenter=y+.5*h;
 %Perform translation to origin
 tx=xv-xcenter;
 ty=yv-ycenter;
 %Perform rotation
 rotated=transform*[tx;ty];
 %Perform translation back to original location
 xv=rotated(1,:)+xcenter;
 yv=rotated(2,:)+ycenter;
 %Plot result
 figure(1);
 plot(xv,yv);
 fill(xv,yv,'blue','FaceAlpha',0.1);hold on;
 axis square;
 axis([-30 30 -30 30]);

0 个答案:

没有答案