Code covered by the BSD License  

Highlights from
polygeom.m

4.83333

4.8 | 12 ratings Rate this file 52 Downloads (last 30 days) File Size: 39.6 KB File ID: #319
image thumbnail

polygeom.m

by H.J. Sommer

 

09 Oct 1998 (Updated 30 Nov 2008)

POLYGEOM computes area, centroid location, area moments of inertia and perimeter of closed polygons.

| Watch this File

File Information
Description

POLYGEOM computes area, centroid location, area moments of inertia and perimeter of closed polygons.

This function is useful for bending/torsion stress analyses, area centroids of models for wind tunnel testing, rotational inertia for dynamics and blob analysis for image processing.

MATLAB release MATLAB 5.2 (R10)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (15)
10 Sep 2003 Elvis Dieguez

Excellent program! Saved me lots of time trying to calculate the area surveyed by a moving wheeled sensor system.

23 Jan 2004 Finlay Scott

Very useful for getting the perimeter of cyclic predator-prey ecological systems

07 Apr 2005 Thor I. Fossen

Excellent program. Should be standard in Matlab. I have used it compute the centroids for wind and current projected areas as welll as other things:)

30 Aug 2005 Chinmay Pangarkar

Super!!! I get all geometry of my arbitrary cells using this code. Thank you H.J. Sommer!!

31 Oct 2005 Alfonso Rojas

Very useful program, clean and well-commented code. Tried it with Matlab
v 7.0.1 (R14), and it works fine. Excellent.

22 Mar 2006 Jim Price

Yes, yes, yes --- this is an extremely useful and well-done script. Should be a part of the regular Matlab so that users can most easily find it. Thank You!!

04 Dec 2006 Pooya S

Nice package

15 Apr 2008 Alice Huang  
29 Nov 2008 Xu

Can't download ZIP instead of m file only?

29 Nov 2008 Xu  
08 Jun 2009 Stefan Berger

This prog is wonderful, just what I needed. If you have time please improve it to handle the third dimension!!

23 Feb 2011 Raghuram

The outputs are erroneous for the following input:
x = [1.0000 0.5000 0.8333 0.5694]
y = [1.0000 0.1667 0.5000 0.5694]
The centroid is computed as (0.8801,1.1496) which is outside the parallelogram formed by the input points.

14 Apr 2011 Richard Crozier

Raghuram, the correct answer is given if you reorder your vertices so they are given clockwise around the outside of the polygon, rather than just specified randomly, e.g,

% Your vertices
% x = [1.0000 0.5000 0.8333 0.5694];
% y = [1.0000 0.1667 0.5000 0.5694] ;

% reordered moving clockwise around the polygon from (0.5, 0.1667)

xy = [0.5, 0.1667;
      0.8333, 0.5;
      1, 1;
      0.5694, 0.5694; ];
      
x = xy(:,1);
y = xy(:,2);

for i = 1:numel(x)-1
    line(x(i:i+1), y(i:i+1), [0,0], 'Color', 'b');
    hold on
end

line([x(end), x(1)], [y(end), y(1)], [0,0], 'Color', 'b');

[ geom, iner, cpmo ] = polygeom( x, y )

plot(geom(2), geom(3), '+r')

hold off

14 Apr 2011 Richard Crozier  
01 Oct 2011 Steve Tweddell

Excellent function, a real time saver

Please login to add a comment or rating.
Updates
12 Jan 2005

Provides positive area for CW or CCW vertex sequence.

27 Sep 2005

ZIP includes boundary integral equations and how to handle holes.

30 Nov 2008

derivation and test routine added to ZIP on 08.11.30

Tag Activity for this File
Tag Applied By Date/Time
area H.J. Sommer 22 Oct 2008 06:36:26
centroid location H.J. Sommer 22 Oct 2008 06:36:26
area moments Cristina McIntire 05 Feb 2009 14:11:36
inertia Cristina McIntire 05 Feb 2009 14:11:36
polygon yuli zhang 15 Mar 2010 09:03:51
inertia yuli zhang 15 Mar 2010 09:04:05

Contact us at files@mathworks.com