【发布时间】:2015-06-22 16:04:26
【问题描述】:
相关:Is there a simple algorithm for calculating the maximum inscribed circle into a convex polygon?
我正在编写一个图形程序,其目标是艺术而非数学。它使用几何图元,例如线段或小角度的弧线,逐步组成图片。在此过程中,它会寻找开放区域以填充更多细节;随着可用的开放区域变得更小,细节变得更精细,所以它是松散的分形。
在给定的步骤中,为了决定下一步做什么,我们想知道:仍然没有现有几何图元的最大圆形区域在哪里?
问题的一些限制
- 不需要精确。一个足够接近的答案就可以了。
- 不精确应该在保守方面犯错:几乎最大的圆圈是可以接受的,但不是完全空的圆圈是不可接受的。
- CPU 效率是重中之重,因为它会经常被调用。
- 程序将在浏览器中运行,因此内存效率也是一个优先事项。
- 我必须设置细节级别的限制,大概是受内存空间的限制。
- 我们可以以任何所需的方式跟踪已绘制的图元,例如空间索引。不需要这些的精确性;例如存储边界框而不是弧线就可以了。然而,我们拥有的精度越高越好,因为它可以让程序绘制到更高级别的细节。但是,鉴于图元的数量会随着细节水平呈指数增长,我们希望过去细节的存储不随着图元的数量线性增加。
总结优先顺序
- 内存效率
- CPU 效率
- 精度
附言
我用圆圈来设计这个问题,但如果更容易找到最大的透明黄金矩形(或黄金椭圆),那也可以。
附言
这张图片让我对我想要实现的目标有所了解。这是一个卷须绘制程序的开始,其中决定在哪里发芽以及多大, 不考虑剩余的开放空间。但现在我们想知道,接下来哪里有画卷须的空间,有多大?之后呢?
【问题讨论】:
标签: algorithm graphics computational-geometry