判断一个点是否在指定区域内我现在用五个点按照顺时针方向围成一个区域,任意给出一个点,要判断它是否在围成的区域内.关键问题

判断一个点是否在指定区域内
我现在用五个点按照顺时针方向围成一个区域,任意给出一个点,要判断它是否在围成的区域内.关键问题在于,这五个点围成的区域可以是凸的,也可以是凹的,没有一个具体的标准,要根据实际情况而定.我该怎么判断呢?
3hvaye 1年前 已收到1个回答 举报

kakacc 春芽

共回答了18个问题采纳率:88.9% 举报

首先你要会判断一个点在三角形内,和一个点在线段内
凸多边形:先给各个点顺时针编号,然后随便一个点,比如你,它去连接和他不相邻的那两个点,也就是3和4,这样就把一个凸五边形分成了3个三角形,然后判断这个点是否在这3个多边形内,同时判断是否在那两条线段上,就可以了.
凹多边形:先找到凹点,也就是那个凹进去的点,可以通过计算方位角的办法得到.然后用它他连接和他不相邻的那两个点,后面就和凸多边形一样了.
其实你可以先计算方位角,这样既可以判断是否为凹多边形,同时也可以得到那个凹点了.
这个算法效率可能不高,但是思路比较清晰吧

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.029 s. - webmaster@yulucn.com