Algorithm 将一组形状简化为单个形状

Algorithm 将一组形状简化为单个形状,algorithm,geometry,Algorithm,Geometry,如果你有一堆形状,可以这样说: 想知道是否有一个实时算法(或者任何建议也会很有帮助)可以确定你可以用大圆圈来近似它,就像这样: 它不必是特定的圆,它可以参数化以不同的方式工作。只是想知道如何基本上: 确定可由更简单形状近似的形状块 将该形状覆盖在更复杂/更小的形状上 谢谢。我想到了一种方法。我称之为“改变对比度/亮度”,就像在图像编辑应用程序中一样 你可以得到所有形状的中心 获取他们的卷 计算每个形状的权重(每个形状的距离和体积的函数。Wx=F(Di,Vi),其中W(权重),x:当前形状指数

如果你有一堆形状,可以这样说:

想知道是否有一个实时算法(或者任何建议也会很有帮助)可以确定你可以用大圆圈来近似它,就像这样:

它不必是特定的圆,它可以参数化以不同的方式工作。只是想知道如何基本上:

  • 确定可由更简单形状近似的形状块
  • 将该形状覆盖在更复杂/更小的形状上

  • 谢谢。

    我想到了一种方法。我称之为“改变对比度/亮度”,就像在图像编辑应用程序中一样

  • 你可以得到所有形状的中心
  • 获取他们的卷
  • 计算每个形状的权重(每个形状的距离和体积的函数。Wx=F(Di,Vi),其中W(权重),x:当前形状指数,D(距离),Di是x和i之间的距离,V(体积),Vi:i的体积
  • 使用一个变量(可能是一个值滚动条)来更改亮度
  • 对比度重复#4
  • 计算所有形状重量的平均值(或平均值)
  • 增加亮度意味着减少远形状的体积(即重量低于平均“低重量”的形状)

    增加对比度意味着增加高重量形状的体积,减少低重量


    通过更改对比度和亮度,一些形状将消失,其他形状将合并为一个形状,您将得到一个更简单的形状.

    我认为这个问题有点太宽泛了,你还有其他限制吗?画一个网格并填充所有与原始形状相交的网格单元怎么样?这就是我想知道的,不确定你会怎么做。只是能够做到(1)这将是完全足够的帮助。不知道如何在高层次上进行识别。它不需要包括诸如使用四叉树进行有效查找之类的细节,只需要寻找高层次的指导。再次感谢你。你所要求的更多是人类的任务,而不是计算机的任务。那么网格方法有什么错呢h?我同意Yves Daoust的观点,为了开发一种算法,你需要对你的目标有一个更好的定义。例如,这可能是这样的:(1)我有一组2D中的P多边形(2)和一组简单多边形(3)找到P中的多边形与Q中的多边形(4)的重叠。Q中的多边形可以旋转、调整大小和重复使用(5)我们的目标是找到一个覆盖,使得| O intersect P |最小,我们使用的多边形不超过Q中的k个。是的,这是一个非常准确的描述:D仍在尝试绕网格方法。