Date: Jan 19, 2013 2:14 PM
Author: Roger Stafford
Subject: Re: create polygon coordinates
"Jessica" wrote in message <kdenag$nth$1@newscl01ah.mathworks.com>...

> I have coordinates such as this:

>

> 384 360 60 69

>

> that represent the left, top, width, and height of an ellipse. How can I turn these values into a list that specifies a polygon?

>

> I would like to use this polygon list to find out whether particular X and Y coordinates fall inside this ellipse:

>

> k_inside1= inpolygon(X_Coordinate, Y_Coordinate, X_Polygon3, Y_Polygon3);

>

> Thanks!

- - - - - - - - -

It seems a shame to approximate an ellipse with a polygon to see if points lie inside it, when a direct test with the simple equation of the ellipse would accomplish the same thing with much better accuracy and simplicity.

However, here are n vertices of a polygon approximating an ellipse. Let the ellipse be defined by the equation

(x-x0)^2/a^2 + (y-y0)^2/b^2 = 1

Then the vertices are given by:

t = linspace(0,2*pi,n); % <-- You choose n

x = a*cos(t)+x0;

y = b*sin(t)+y0;

Note: The spacing along the polygon is not uniform here. To do that would require the use of elliptic integrals.

Roger Stafford