【发布时间】:2011-10-13 09:57:36
【问题描述】:
我已经在互联网上搜索了好几天,但是对于这似乎应该是一个常见问题的问题,我一直找不到一个好的答案(或者至少是一个对我有意义的答案)。如何缩放任意多边形?特别是凹多边形。我需要一种可以处理凹面(肯定)和自相交(如果可能)多边形的算法。我用来处理简单凸多边形的明显而简单的算法是计算多边形的质心,将该质心平移到原点,缩放所有顶点,并将多边形平移回其原始位置。
这种方法不适用于许多(或可能所有)凹多边形,因为质心通常位于多边形之外,因此缩放操作也会导致平移,我需要能够“原地”缩放多边形而不正在翻译的最终结果。
有人知道缩放凹多边形的方法吗?或者也许是一种找到“视觉中心”的方法,可以用作缩放操作的参考框架?
澄清一下,我在 2D 空间中工作,我想使用“视觉中心”作为参考框架来缩放我的多边形。所以也许另一种提问方式是,我如何找到凹面和/或自相交多边形的视觉中心?
谢谢!
【问题讨论】:
-
也许可以构建一个人工边界矩形(或其他区域)来帮助您进行居中和平移。
-
嗯,我尝试使用边界框的中心作为参考框架,但结果也被翻译了。还尝试按所需因子缩放边界框并使用边缘作为参考框架,但仍然没有得到纯未翻译的解决方案。你有什么特别的想法我应该尝试使用边界框吗?感谢您的回复!
-
我所说的中心是多边形的“视觉中心”。我能想到的描述它的最佳方式是“放大”多边形,因此您希望多边形的视觉中心在整个缩放过程中保持不变。
-
画一个凹多边形并标注你所说的“视觉中心”。视觉中心不是一个技术术语,如果不给出精确的定义或至少一些示例,我们就无法知道您的意思,以便我们可以推断。