2011-04-12 38 views

回答

2

编辑: 啊。我看到“Straight Skeleton”是一个技术术语。维基百科文章引用了几种算法。你看过那些吗?


据我所知,你有一个(凸?)多边形。从中减去1个或更多(可能非凸)多边形。你想把结果变成一组无多孔的多边形。你有没有额外的规则可以申请?

我很难从您提供的示例中提出一组规则。外部多边形是非凸的;所以它似乎并不像你试图找到一个凸集来表示结果(这是一个相对常见的任务)。

如果您可以使用下面显示的细分,算法非常简单。你能澄清吗?

Triangularized shape

2

您可以使用JTS Topology Suite。这是一个非常有能力的图书馆,我已经用于一些项目 - 从来没有直骨骼,但它可能是可能的。

-1

我能问你什么是你寻找直骨架目的是什么?它是个人还是商业?我很想知道如何使用它来解决实时问题?我有一个java库,这样做。我的算法列在这里http://web.stcloudstate.edu/rsarnath/skeleton/definition.htm

+2

商业。就我而言,我实际上是在寻求一种“减薄”多边形的方法。直骨骼看起来不错,但速度太慢 - 我需要在弱机器上实时(<1秒)获得复杂多边形(由数千个点组成)的“中心线”。所以最后,我决定创建多边形的约束Delaunay三角剖分,并连接三角中心 - 它给了我很好的“中心线”近似值。 – Rogach 2012-01-18 09:27:48