防灾数学分享 http://blog.sciencenet.cn/u/fzmath 防灾科技学院数学教研室

博文

MATLAB中计算平面多边形面积的polyarea和convhull

已有 13815 次阅读 2017-5-22 09:24 |个人分类:教学辅导|系统分类:教学心得

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




https://wap.sciencenet.cn/blog-292361-1056325.html

上一篇:足不出户也能在微信上免费看学术会议
下一篇:心的绘制——MATLAB下调用mupad绘制三维隐函数
收藏 IP: 221.194.160.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-8 12:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部