我正在开发一个带有P5库的小应用程序,允许用户单击画布来创建点并构建多边形,我想计算该多边形的可见性图。 如何实现一个算法,可以告诉我这个多边形中是否有两个顶点可见? 我不知道如何检查这两个顶点之间的线是否在多边形内。 谢谢。
答案 0 :(得分:0)
让 a 和 b 成为两个顶点。首先检查段 ab 是否在 a 和 b 处于本地内部。即,它落在由 a 之前和之后的顶点确定的圆锥内,并且 b 。如果是这样,那么你需要将段 ab 与多边形的每个边相交(除了那些事件发生在 a 和 b 之外,因为你刚检查过那些)。
为此,您需要段段交叉代码。 您可以在整个网络上找到这一点,包括Computational Geometry in C的第7章, 和this description by Martin Thoma。