Determine if a polygon is complex.

3 次查看(过去 30 天)
I want to determine if a polygon is complex not using inbuilt functions.
This is my rough idea.
for edge = 1:n
for otheredge = 1:n
if edge crosses otheredge
disp ('complex polygon')
else
disp ('non complex polygon')
end
end
I doubt anyone could help me as I have searched high and low with no luck. I don't know how to come up with a value for the edges to determine if they cross or not. I guess maybe you could make all the edges into linear equations ? Also that loop is just a quick brainstorm. Attached is some examples of where the polygon is complex and not.
Shapes c and d are complex. I have no idea how I would figure out d. Maybe calculate the points which are within other points.
Any slight bit of help or input would be appreciated.
NOTE: I am using shoelace formula to calculate area and if some how someone knows how to determine if polygon is complex or not how could I use this information to calculate maybe the area of d.

采纳的回答

Sean de Wolski
Sean de Wolski 2014-3-26
编辑:Sean de Wolski 2014-3-26
If you have the Mapping Toolbox, you can use polyxpoly to test if to line segments intersect. I'm sure there's a utility to do this on the FEX as well.
Actually, geom2d looks like it has an intersection function for this.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Elementary Polygons 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by