我是 Matlab 新手,我正在尝试编写一段代码,在极坐标系中绘制这两条曲线,并为它们所包围的区域着色。
r1 = 3 * sin(theta)
r2 = 1 + sin(theta)
我尝试了几种初步方法,但没有效果。
我正在使用Matlab R2022b
您可能必须使用
pol2cart
从极坐标转换为笛卡尔坐标,这会打开更多标准绘图功能,例如 patch
输入示例:
theta = linspace(0,pi,2000);
r1 = 3 * sin(theta);
r2 = 1 + sin(theta);
绘制代码:
[x1,y1] = pol2cart( theta, r1 );
[x2,y2] = pol2cart( theta, r2 );
figure; hold on;
patch([x1 fliplr(x2)], [y1 fliplr(y2)], [0.7,0.9,0.9], 'displayname', 'fill', 'linestyle', 'none')
plot( x1, y1, 'r', 'linewidth', 2, 'displayname', 'r1' );
plot( x2, y2, 'b', 'linewidth', 2, 'displayname', 'r2' );
legend( 'show' );
请注意,如果您经过
pi
变为 theta
,那么线之间的区域的定义会有点模糊,但从这里开始,您拥有定义填充边界的所有坐标以及以不同方式计算它们的能力。