【发布时间】:2018-01-21 15:16:39
【问题描述】:
我正在使用 P5 库开发一个小型应用程序,该应用程序允许用户单击画布以创建点并构建多边形,我想计算该多边形的可见性图。 如何实现一个算法来告诉我在这个多边形中是否可见 2 个顶点? 我不知道如何检查这两个顶点之间的线是否在多边形内。 谢谢。
【问题讨论】:
标签: javascript algorithm geometry
我正在使用 P5 库开发一个小型应用程序,该应用程序允许用户单击画布以创建点并构建多边形,我想计算该多边形的可见性图。 如何实现一个算法来告诉我在这个多边形中是否可见 2 个顶点? 我不知道如何检查这两个顶点之间的线是否在多边形内。 谢谢。
【问题讨论】:
标签: javascript algorithm geometry
让 a 和 b 为两个顶点。首先检查段 ab 是否在 a 和 b 的本地内部。即,它落在由a和b前后的顶点所确定的圆锥内。如果是这样,那么您需要将线段 ab 与多边形的每条边相交(除了那些与 a 和 b 相关的边,因为您刚刚检查了这些)。
为此,您需要段-段相交代码。 你可以在网上找到这个,包括Computational Geometry in C的第7章, 和this description by Martin Thoma。
【讨论】: