【问题标题】:Polygon adding algorithm多边形添加算法
【发布时间】:2012-03-11 19:10:34
【问题描述】:

我想做以下事情:我在 3D 空间中有一些面作为多边形。我有一个投影方向和一个投影平面。我在投影平面上有一个凸剪裁多边形。我想得到一个多边形,代表平面上所有面的阴影。

到目前为止我所做的:我将面的投影计算为投影平面中的多边形。

我可以使用 Sutherland-Hodgman 算法来裁剪所有单投影多边形以裁剪到所需区域。

现在我的问题是:如何将投影(可能被剪裁)的多边形组合在一起?我必须使用像 Margalit/Knott 这样的算法吗?

该算法应该非常有效,因为它必须经常运行。那么你认为是什么算法呢?

是否可以修改 Sutherland-Hodgman 的算法来解决合并问题?

【问题讨论】:

  • “面孔”?这些是多面体的面吗?
  • 面是否有可能是凸多面体的面?如果是,则计算顶点投影的凸包。然后剪辑那个多边形。
  • 是的,面来自多面体。单个多面体可以被限制为凸的。但是所有面的整体结合在任何意义上都不会是凸的。

标签: algorithm math geometry 2d computational-geometry


【解决方案1】:

我目前正在使用 Bentley–Ottmann 实现此算法(n 个凹多边形的并集)以查找所有边缘交叉点,同时跟踪边缘段两侧的多边形嵌套级别(每侧有多少重叠多边形线是接触的)。一侧嵌套级别为 0 的边将输出到结果多边形。正确完成是相当棘手的。可以在以下位置找到具有不同算法设计的现有解决方案:

http://sourceforge.net/projects/polyclipping/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 2011-12-19
    • 2012-08-04
    • 2011-09-15
    • 2018-04-10
    • 2015-04-28
    • 2014-03-14
    • 2013-03-18
    相关资源
    最近更新 更多