判断一个点是否在指定区域内

来源:百度知道 编辑:UC知道 时间:2024/05/14 03:07:38
我现在用五个点按照顺时针方向围成一个区域,任意给出一个点,要判断它是否在围成的区域内。关键问题在于,这五个点围成的区域可以是凸的,也可以是凹的,没有一个具体的标准,要根据实际情况而定。我该怎么判断呢?

首先你要会判断一个点在三角形内,和一个点在线段内

凸多边形:先给各个点顺时针编号,然后随便一个点,比如你,它去连接和他不相邻的那两个点,也就是3和4,这样就把一个凸五边形分成了3个三角形,然后判断这个点是否在这3个多边形内,同时判断是否在那两条线段上,就可以了.

凹多边形:先找到凹点,也就是那个凹进去的点,可以通过计算方位角的办法得到.然后用它他连接和他不相邻的那两个点,后面就和凸多边形一样了.

其实你可以先计算方位角,这样既可以判断是否为凹多边形,同时也可以得到那个凹点了.

这个算法效率可能不高,但是思路比较清晰吧