我正在创建一个包含许多多边形的图形,这些多边形可以在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]);