【问题标题】:How can I create an internal spiral for a polygon?如何为多边形创建内部螺旋?
【发布时间】:2015-09-09 06:06:04
【问题描述】:

对于任何形状,我如何在其中创建一个类似形状的螺旋。这将是一个类似于边界的想法(使用 Minkowski 和)。而不是在形状内部创建相同的形状,尽管它会是相同形状的螺旋。

我发现了这个 - http://www.cis.upenn.edu/~cis110/13su/lectures/Spiral.java

它根据传递的参数创建一个螺旋,因此它可以用于任何常规形状。

我也想要所有形状,即不规则多边形。

我不太熟悉几何术语,但我也查过渐开线和内部螺旋搜索算法,但对我没有用处。

有没有人知道我在哪里可以找到这样的算法,或者至少知道我是如何想出一个算法的?

【问题讨论】:

    标签: algorithm geometry polygon computational-geometry


    【解决方案1】:

    这个任务非常难做。

    1. 需要有你想用螺旋填充的边界多边形

      我想你已经有了

    2. 通过逐步向内移动所有线来创建新的更小的多边形。

      类似于在多边形周围创建笔划线。步长是螺丝的宽度,所以在多边形的开头是0,最后是d

    3. 从新生成的螺丝中删除无效行

      拐角和曲率上的一些线会相交。这很难可靠地检测/修复

      • this 了解基本情况
    4. 重复(做下一个螺丝)...直到找不到螺丝的空间

      但是现在在第一个螺丝之后,步骤总是d 这不一定会填满整个形状。例如,如果形状上有一些较薄的点,填充的速度会比其他点快得多,因此仍然会留下一些孔。

      您应该检测它们并按照您认为合适的方式处理

      注意检测该区域是否被填满也不是微不足道的

    这就是这种方法的样子:

    [备注]

    如果您忘记了螺旋并想用锯齿形或类似图案填充内部,那么这并不难。

    螺旋填充会产生很多困难的几何问题,如果您不精通几何和矢量数学,这项任务对于该领域的初学者甚至中级程序员来说可能是一个太大的挑战,无法使其正常工作。这至少是我的意见(就像我以前做过的那样)所以就这样处理吧。

    【讨论】:

      【解决方案2】:

      我使用基于 Voronoi 图的中轴的 polgyon 偏移量进行了类似的工作。这并不简单。我无法分享代码,因为它属于我工作的公司,它可能不完全符合您的需求。

      但这里有一些其他人发现的类似的东西:

      http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf

      http://www.cosy.sbg.ac.at/~held/teaching/seminar/seminar_2010-11/hsm.pdf

      【讨论】:

        猜你喜欢
        • 2021-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-21
        相关资源
        最近更新 更多