求...判断一个点是否在(不规则)四边形当中

2025-01-30 14:02:19
推荐回答(5个)
回答1:

1、若有3点共线 4个点不构成4边形
2、无三点共线 三点构成三角形 另外一点在三角形内
则4个点可以构成3个 凹四边形 没有任何一点同时属于这3个凹四边形(这里把在边上的点认为不在四边形内)在三角形内的点都有可能属于某个四边形
3、四点构成凸四边形 设4点位A,B,C,D
求出直线AB和CD AC和BD AD 和BC得交点 若交点在线段AB 或AC或AD上则舍去这组 剩余两组 则为四边形4边 比如四边为 AB 和CD, AD和BC 则把点P坐标带入AB,CD方程 若二者异号 则说明点在2直线之间 同理验证AD和BC 都异号的话说明P在四边形内部

回答2:

从点所在位置做一个水平或者垂直的射线
计算它和多边形的交点,奇数在内,偶数在外

所以要先编一个被调程序实现求四边形四边的方程(线段,规定x的范围);然后求射线方程(若作水平射线则限定x范围,垂直则限定y的范围)与四边的交点数;再求射线与四边的交战。再判断奇偶性即可。

建议你看看凸包算法,也可以用这个来判断。

回答3:

依题意应该是平面四点
平面四点组成的任意四边形,就是四点的连线组成的四边形
仅且仅有这一种情况
再判断目标点是否再四边形内,都很容易了

回答4:

从点所在位置做一个水平或者垂直的射线计算它和多边形的交点,奇数在内,偶数在外

可以尽管放心用,这是一个计算机图形学的基本算法思想。

回答5:

由四个点判断任意四边形的四条边所在直线
然后以(0,0)为标准判断目标点(a,b)与四条直线的位置关系
综合四个关系判断目标点是否在这四条直线所围成的四边形里