如何确定一个点是否在四边形内

sly*_*kat 16 math geometry coordinates

目标

我想确定测试点是否在定义的四边形内.我可能要在Matlab中实现解决方案,所以我只需要伪代码.

输入

四边形的角:(x1,y1)(x2,y2)(x3,y3)(x4,y4)

测试点:(xt,yt)

产量

1 - 如果在四边形内

0 - 否则

更新

有人指出,识别四边形的顶点不足以唯一地识别它.您可以假设点的顺序决定了四边形的边(点1连接2,2连接到3,3连接到4,4连接到1)

mil*_*ili 34

在此输入图像描述

您可以使用此条件测试Point.您还可以将四边形视为2个三角形来计算其面积.

  • 这是一个很好的解决方案,但很容易看出这只适用于凸四边形. (11认同)
  • 这实际上有效吗?它在吹我的脑海!我试图想一个不起作用的场景.这不仅仅适用于四边形吗?!任何形状.这太棒了. (5认同)

Jac*_*cob 5

使用inpolygon.用法是inpolygon(xt,yt,[x1 x2 x3 x4],[y1 y2 y3 y4])