matlab提取多边形区域_科学网-MATLAB中计算平面多边形面积的polyarea和convhull-王福昌的博文...

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);

plot(xv,yv); title(['Area = ' num2str(A)]); axis image

figure

dt = DelaunayTri(xv,yv)

triplot(dt);

vxlabels = arrayfun(@(n) {sprintf('P%d', n)}, (1:10)');

Hpl = text(xv, yv, vxlabels, 'FontWeight', 'bold', 'HorizontalAlignment',...

'center', 'BackgroundColor', 'none');

ic = incenters(dt);

numtri = size(dt,1);

trilabels = arrayfun(@(x) {sprintf('T%d', x)}, (1:numtri)');

Htl = text(ic(:,1), ic(:,2), trilabels, 'FontWeight', 'bold', ...

'HorizontalAlignment', 'center', 'Color', 'blue');

hold off

[k,a] = convhull(xv,yv)

dt =

DelaunayTri

Properties:

Constraints: []

X: [9x2 double]

Triangulation: [7x3 double]

Methods, Superclasses

k =

1

2

3

4

5

6

7

8

9

1

面积为

a =

4.0729

转载本文请联系原作者获取授权,同时请注明本文来自王福昌科学网博客。

收藏

分享

分享到:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值