我的问题是,在三维空间中,一个普通的(凸的或凹的)多边形和一个矩形的多边形是否有一个非零的交点。每个多边形都由坐标轮廓点集定义(如果点p1在点p2之后/之前,则边p1-p2存在)。
求多边形的两个平面的相交线是很容易的,所以问题是找到一条线和有限多边形的交点,以及所产生的交叉口是否有共同的部分。我找到了一条线和一个凸多边形的交点的算法,但是对于凹多边形的一般情况,我什么也找不到。
有什么建议吗?谢谢
发布于 2014-06-13 09:43:15
找出平面相交线的交点与两个图形的每一个边缘。从这里开始,它直接的问题是查看线上各点的排序,以检查是否有任何重叠。
当然,它们共面的特殊情况是一个完全不同的问题。
发布于 2014-06-13 07:19:43
对于凹多边形交集/包容/等查询,通常没有快速的解决方案。
一般的解决办法总是把三角剖分多边形变成一系列凸三角形,然后用这些三角形进行交叉测试。
发布于 2014-06-13 07:35:00
如果你可以依赖于多边形成为平面,你可以首先与平面相交,然后将交点转换成平面的坐标系。
假设你已经转换了多边形的所有顶点,现在的问题是决定2D交点是否在一个2D多边形内。
https://stackoverflow.com/questions/24208348
复制