如何解决如何在 MATLAB/OCTAVE 中创建一个带孔的矩形?
我想在 MATLAB 或 OCTAVE 中准确地绘制/绘制这个形状。当然,我知道如何绘图,以及如何使用绘图、线条或矩形函数创建矩形。但是我还没有设法在矩形的顶部添加这个“洞”。我想,它是一个半径为 0.5 且中心点为 (1.5|2) 的(半)圆。在 OCTAVE 中,有一个 drawCircleArc
函数,但我不想只画那个东西,还要有必要的坐标来定义整个形状以供进一步操作。
解决方法
这是一种方法(matlab/octave 兼容):
% Specify all polygon points,excluding the semi-circle outline
X = [1,3,2];
Y = [2,2,2];
% Add semi-circle outline to array of polygon points
t = 0 : -0.01 : -pi;
X = [X,1.5 + 0.5 * cos(t)];
Y = [Y,2 + 0.5 * sin(t)];
% Use fill to plot the filled polygon,with desired settings
fill( X,Y,[0.8,0.8,0.8],'linewidth',1.5 );
axis( [-2,4,-2,4] ); axis equal;
,
从 2017b 开始,您还可以使用 polyshape 和 boolean operators。
rect = polyshape([0 3 3 0],[0 0 2 2]);
t = linspace(0,2*pi,32);
circ = polyshape(1.5+.5*cos(t),2+.5*sin(t));
subplot 121,hold on
plot(rect)
plot(circ)
axis equal
shape = subtract(rect,circ);
subplot 122
plot(shape)
axis equal
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。