set of points form a polygon?

2 次查看(过去 30 天)
kai
kai 2020-8-24
评论: kai 2020-8-24
Hello,
Is there a way to tell if a set of vertices can form a closed polygon or not in genear or in matlab ?
Example:
[1,1], [3,1],[2,2] form a triangle when connected.
How do you conclude that these points can form a polygon.
Is there any algorithm to follow ?.
Thank you.
  2 个评论
KSSV
KSSV 2020-8-24
Always more than two non-collinear points can form a polygon. If they are on striaght line/ collinear they cannot and this can be obtained by using area; you can use polyarea to get the area. If area is zero then they are collinear. If you have a value they can form polygon.
kai
kai 2020-8-24
Thank you KSSV for you answer
it helped me.

请先登录,再进行评论。

采纳的回答

Bruno Luong
Bruno Luong 2020-8-24
编辑:Bruno Luong 2020-8-24
If your list of points are ordered of the boundary of the polygonal, you can detect if the list of points self intersect thus NOT represent a valid polygonal by using polyshape, catch the warning or get the number of regions, if it's larger than 1 it's not valid:
EDIT: you can also use ISSIMPLIFIED function
>> x=rand(1,5)
x =
0.1419 0.4218 0.9157 0.7922 0.9595
>> y=rand(1,5)
y =
0.6557 0.0357 0.8491 0.9340 0.6787
>> issimplified(polyshape(x,y,'Simplify',false))
ans =
logical
0 % <= NOT VALID
  1 个评论
kai
kai 2020-8-24
Thank you Bruno Luong for commenting the question and helping me.

请先登录,再进行评论。

更多回答(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