【问题标题】:Visibility of 2 vertices in a simple polygon简单多边形中 2 个顶点的可见性
【发布时间】:2018-01-21 15:16:39
【问题描述】:

我正在使用 P5 库开发一个小型应用程序,该应用程序允许用户单击画布以创建点并构建多边形,我想计算该多边形的可见性图。 如何实现一个算法来告诉我在这个多边形中是否可见 2 个顶点? 我不知道如何检查这两个顶点之间的线是否在多边形内。 谢谢。

【问题讨论】:

标签: javascript algorithm geometry


【解决方案1】:

ab 为两个顶点。首先检查段 ab 是否在 ab 的本地内部。即,它落在由ab前后的顶点所确定的圆锥内。如果是这样,那么您需要将线段 ab 与多边形的每条边相交(除了那些与 ab 相关的边,因为您刚刚检查了这些)。

为此,您需要段-段相交代码。 你可以在网上找到这个,包括Computational Geometry in C的第7章, 和this description by Martin Thoma

【讨论】:

  • 感谢您的回复。您是否有一个链接可以帮助我实现我需要确定该段是否在本地 a 和 b 内部的部分。在入射顶点形成的角度为钝角的情况下,我遇到了问题。
  • 您希望 ab 左侧有一个顶点,右侧有一个顶点。因此,可以通过两次调用 LeftOf() 函数来检查它,该函数将三个点作为输入并返回真,如果第一个点位于由第二个和第三个确定的线的左侧。这本质上是signed area of a triangle
  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 2012-11-05
  • 1970-01-01
  • 2011-07-28
  • 2013-04-18
  • 2011-04-17
  • 2020-10-16
相关资源
最近更新 更多