【发布时间】:2016-09-04 20:24:00
【问题描述】:
我有一个封闭的二维表面,如下所示:
r=1+0.1*sin(5*theta)+a*sin(6*theta);
x=r.*cos(theta);
y=r.*sin(theta);
plot(x,y);
我想知道找到它的区域最有效的方法是什么?
【问题讨论】:
我有一个封闭的二维表面,如下所示:
r=1+0.1*sin(5*theta)+a*sin(6*theta);
x=r.*cos(theta);
y=r.*sin(theta);
plot(x,y);
我想知道找到它的区域最有效的方法是什么?
【问题讨论】:
来自 MATLAB 文档: http://www.mathworks.com/help/matlab/ref/polyarea.html
你可以使用polyarea
Sintax
A = polyarea(X,Y)
A = polyarea(X,Y,dim)
说明
A = polyarea(X,Y) 返回由向量X 和Y 中的顶点指定的多边形面积。
如果 X 和 Y 是大小相同的矩阵,则 polyarea 返回由列 X 和 Y 定义的多边形面积。
如果X 和Y 是多维数组,polyarea 返回多边形在X 和Y 的第一个非单维维度中的面积。
A = polyarea(X,Y,dim) 沿标量 dim 指定的维度运行。
示例
L = linspace(0,2.*pi,9);
xv = 1.2*cos(L)';
yv = 1.2*sin(L)';
xv = [xv ; xv(1)];
yv = [yv ; yv(1)];
A = polyarea(xv,yv)
// Result A = 4.0729
plot(xv,yv);
title(['Area = ' num2str(A)])
axis image
【讨论】: