Computational geometry 平滑凸多边形形状,使其在保持直径的同时尽可能大

Computational geometry 平滑凸多边形形状,使其在保持直径的同时尽可能大,computational-geometry,shape,convex-polygon,Computational Geometry,Shape,Convex Polygon,给定一个凸多边形,我试图在保持其直径的同时增加其形状(如“最大面积”)。直径定义为可放置在多边形内的最长线段的长度。因为多边形是凸的,我假设这个直径可以通过扫描所有的顶点对来找到 例如,给定一个等边三角形作为输入多边形,三角形的直径是任何边的长度;平滑这将产生3个圆段,如图所示 对于任意凸多边形,一个非常低效的算法是计算以每个多边形顶点为中心的最大直径半径圆的交点;这就是我目前正在使用的(Java)。还有更好的吗?任何指向算法的伪代码或指针都将受到赞赏 另一个例子:一个挤压的五边形及其相应的直径

给定一个凸多边形,我试图在保持其直径的同时增加其形状(如“最大面积”)。直径定义为可放置在多边形内的最长线段的长度。因为多边形是凸的,我假设这个直径可以通过扫描所有的顶点对来找到

例如,给定一个等边三角形作为输入多边形,三角形的直径是任何边的长度;平滑这将产生3个圆段,如图所示

对于任意凸多边形,一个非常低效的算法是计算以每个多边形顶点为中心的最大直径半径圆的交点;这就是我目前正在使用的(Java)。还有更好的吗?任何指向算法的伪代码或指针都将受到赞赏

另一个例子:一个挤压的五边形及其相应的直径保持最大形状。其思想是,在不增加直径的情况下,无法增加此形状的面积(即,可以在形状边界内绘制一条比原始直径长的直线)。在这种特殊情况下,一个半径=多边形直径/2(粉红色)的单个圆似乎比多个半径=多边形直径(浅蓝色)的较大圆的交点要好。第二幅图像叠加了两个区域以便于比较,但区域应完全包围多边形


计算交叉口比看起来要简单;你实际上需要做的就是确定与两个相邻顶点等距的点;你最终会得到两个点,但最靠近形状中心的点几乎肯定是正确的;对于凸多边形,这可能是有保证的,但数学证明不是我的强项。

在我看来,您当前的算法不仅效率低下,而且不正确。以矩形
(0,0)-(10,0)-(10,1)-(0,1)
为例,该矩形当前的直径略大于10。在所有的角上以这个半径相交,你会得到一个相当大的透镜形状的东西,直径超过16。所以那个算法不起作用

可以通过再次将形状与围绕其中一个新顶点的直径大小的圆相交来修复多余的直径,但要使用的顶点的选择是任意的。无论选择什么,最终得到的“膨胀三角形”形状仍然比矩形的外接圆小。我假设在我的例子中,外接圆将是最优解,但我看不到一种简单的方法来修改您的算法,以便找到该解,同时保留其通用性


这只是直觉,但我怀疑输入多边形和您的需求是否唯一地定义了所需的输出。虽然我还没有这个效果的例子,但我相信可能有一些输入多边形存在几个“平滑”的形状,所有这些形状都具有相同的面积和直径,但它们之间仍然不一致。也许值得把这个问题带到会议上进一步讨论这个存在主义问题。

原来这个问题已经被提出了,人们认为这可能是一个难题。甚至还有一些基本的问题没有回答,比如这种形状是否独特

所以我没有一个确切的解决方案,但希望这能让你们更接近,或者至少给你们一些想法

背景 为简单起见,我们可以假定初始多边形的直径为1,而不失一般性

(M.Bezdek,2009)描述了一些有用的概念。有关建议包括:

  • 圆盘多边形,非正式地说,是一个凸集,形成一个“胖”多边形,其中边替换为曲率为1的圆弧
  • 我们可以添加到一组点D中的一组点,使生成的形状的直径最多为1,这组点称为D的双圆盘多边形D*
  • 对偶D**的对偶称为D的主轴凸包:它是包含D的最小圆盘多边形
不使用多边形,只需使用圆盘多边形即可:我们始终可以使用其主轴凸面外壳替换原始多边形,而无需更改结果

我们有那个D⊆ D*当D的直径为1,且D=D*当且仅当D的宽度为常数1时。溶液S将具有恒定宽度1(尽管这当然是不够的)。因此D⊆ S当且仅当D⊆ s⊆ D*:特别是,为了近似S,我们只需要找到S的一个足够大的圆盘多边形子集D。这是非常强大的,因为正如我们将看到的,说某个点属于或不属于S转换为S上的上界和下界(以及它的面积)

理论问题 理想情况下,为了找到一个有效的算法,回答以下问题将非常有用:

  • 全局最优形状(即解决方案)是否一定是唯一的
  • 局部最优形状一定是唯一的吗
  • 多边形的等径外壳必须是直径为1的圆还是宽度为1的Reuleaux多边形
  • 如果是,则Reuleaux多边形的顶点是否从有限多个单位半径圆交点(从原始多边形的顶点开始)派生
  • 作为原始多边形顶点数的函数,Reuleaux多边形的顶点数是否有界
关于圆盘多边形面积的问题可能很难解决:在(K.Bezdek,R.Connelly,2001)中解决的问题是一个关于平面中圆盘相交面积的简单问题,该问题长期未解决

实用方法 全局搜索
从polyg的主轴凸面外壳开始