前几天导师给了个基于三角形网格的二重积分计算题,因为涉及到三角形面积的计算,虽然已知三角形顶点坐标,可以求出边长再计算面积。但我不想这样算,毕竟显得有些繁琐。所以我就想能不能直接基于顶点坐标计算,这样就方便多了,结果一查还真有!那就是 polyarea()函数,利用这个函数就可以轻而易举的求出任意多边形的面积了。
举个简单的例子:如下求一个三角形的面积。只需输入下述MATLAB代码
x = [0 1 0.5 0];
y = [0 0 1 0];
plot(x,y,'LineWidth',1.1)
S = polyarea(x,y)
执行即得:
S =
0.5000图1: 三角形
再来个复杂点的图形,比如计算一个二十九边形的面积。输入下列语句
theta = linspace(0,2*pi,30);
x = 2.*cos(theta);
y = 2.*sin(theta);
plot(x,y,'g-','LineWidth',2)
axis equal
S = polyarea(x,y)
执行得到:
S =
12.4683图2: 二十九边形
从图2可以看出,这个二十九边形就非常近似一个以原点
为圆心,
<