Drexel dragonThe Math ForumDonate to the Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Can matlab determine if a point inside a polygon?
Replies: 7   Last Post: Jun 21, 2013 3:29 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Matt J

Posts: 4,996
Registered: 11/28/09
Re: Can matlab determine if a point inside a polygon?
Posted: Jun 3, 2010 12:24 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Sang-Ho Yun <Sang-Ho.Yun@jpl.nasa.gov> wrote in message <C82C761E.6F1B%Sang-Ho.Yun@jpl.nasa.gov>...
> Can we make matlab decide if a point on a plane is inside a closed polygon?
> How do we know if a point is inside or outside the polygon?


For convex polygon's see the routine below. It should be faster than inpolygon because it exploits the convex structure.

function [A,b]=vert2con_special(a)
%Finds the expression of a 2D convex polygon as a set of linear inequalities from
%a set of vertices
% [A,b]=vert2con_special(a)
% a: Nx2 matrix whos rows are polygon vertex coordinates. The rows must
% must be ordered so that adjacent rows correspond to adjacent vertices
% (which will trivially be the case for triangles).
% [A,b]: Nx1 vector and Nx2 matrix such that A*x<=b if and only if x is a point
% inside the polygon
%Example: Detect whether a point is in a triangle
% %%%data
% Vertices=[0 0; 1 0; 0 1]; %vertices of a triangle
% p1=[.5;.25]; %a point inside the triangle
% p2=[.5;-.25];%a point outside the triangle
% [A,b]=vert2con_special(Vertices);
% >>all(A*p1<=b) %Test if p1 is in the triangle.
% ans =
% 1
% >>all(A*p2<=b) %Test if p2 in the triangle.
% ans =
% 0

R=[0 1; -1 0];





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum 1994-2015. All Rights Reserved.