參考
polyshape文檔
代碼
MAX_LEN=100000;
poly = polyshape([-1 0.5 1 1 0 -1],[0.5 1 0.5 -0.5 -1 -0.5]);
poly1 = polyshape([0 0 MAX_LEN MAX_LEN],[0 MAX_LEN MAX_LEN 0]); %一個頂點在原點且位於第一象限的一個大矩形
poly2=polyshape([0 0 -MAX_LEN -MAX_LEN],[0 MAX_LEN MAX_LEN 0]); %一個頂點在原點且位於第二象限的一個大矩形
poly3=polyshape([0 0 -MAX_LEN -MAX_LEN],[0 -MAX_LEN -MAX_LEN 0]); %一個頂點在原點且位於第三象限的一個大矩形
poly4=polyshape([0 0 MAX_LEN MAX_LEN],[0 -MAX_LEN -MAX_LEN 0]); %一個頂點在原點且位於第四象限的一個大矩形
polyout = intersect(poly,poly2);
subplot(221);
plot(poly);hold on;
plot(polyout);
xlim([-2 2]);
ylim([-2 2]);
display(['A2=',num2str(polyout.area)]);
title(['A2=',num2str(polyout.area)]);
polyout = intersect(poly,poly3);
subplot(222);
plot(poly);hold on;
plot(polyout);
xlim([-2 2]);
ylim([-2 2]);
display(['A3=',num2str(polyout.area)]);
title(['A3=',num2str(polyout.area)]);
polyout = intersect(poly,poly4);
subplot(223);
plot(poly);hold on;
plot(polyout);
xlim([-2 2]);
ylim([-2 2]);
display(['A4=',num2str(polyout.area)]);
title(['A4=',num2str(polyout.area)]);
polyout = intersect(poly,poly1);
subplot(224);
plot(poly);hold on;
plot(polyout);
xlim([-2 2]);
ylim([-2 2]);
display(['A1=',num2str(polyout.area)]);
title(['A1=',num2str(polyout.area)]);
display(['OveallArea=',num2str(poly.area)]);
suptitle(['OveallArea=',num2str(poly.area)]);
結果
