【问题标题】:How to avoid the polygon to be complex when optimizing its vertices?优化顶点时如何避免多边形复杂?
【发布时间】:2011-06-04 15:10:02
【问题描述】:

假设有一组二维点来表示一个初始的简单多边形。现在我想根据一些成本函数优化每个点的位置。但这可能会使多边形变得复杂,即多边形与自身相交。我怎样才能避免这种情况?谢谢!

【问题讨论】:

    标签: graphics polygon computational-geometry


    【解决方案1】:

    如果可以假定多边形是凸的,那么它很简单。只需计算每边和下边之间的角度。对于凸多边形,每个角度必须在 0 到 180 度之间。这些角度的总和对于具有 N 条边的封闭多边形是众所周知的。这将导致简单的约束优化。 (实际上,与使用三角函数计算角度相比,您可以将这些约束写成“更简单”的形式。叉积就足够了。)

    如果多边形不需要是凸的,那么您需要担心边缘交叉或其他退化。

    【讨论】:

    • 谢谢木片!多边形不一定是凸的。边缘交叉是什么意思?使用扫描线算法检测是否有任何线段与另一个线段相交?
    • 没错。这对你来说显然是个问题。您需要确保没有两条边交叉,因为这显然是个问题。您还需要注意多边形的边缘是否与顶点相交。
    • 扫描线算法似乎如此微不足道,以至于我想知道是否可以将其表述为优化的显式约束。谢谢。
    • 如果写起来真的那么琐碎,那你为什么还没写呢?许多事情很容易可视化,但当您尝试将它们写在实际工作代码中时会有点复杂。
    • 对不起,也许我用错了词(因为我的英语很差)。我的意思是扫线算法不容易集成到优化中。
    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2019-04-29
    • 2021-07-18
    • 2021-09-04
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多