2011-08-19 29 views
2

對於我的數據可視化,我需要將各種尺寸的圓圈排列成緊湊的區域 - 矩形或圓形。 (見thisthis的例子。)在數據可視化中安排圓圈

理論上它是一個二維不規則的,但我想避免這種方式。你可以在網上找到類似的可視化,我懷疑他們使用任何嚴格的數學。

我所需要的只是圓圈顯得有序排列(它們之間的距離大致相同)。必須比削減庫存數學更容易。誇張地說,我甚至可以想象2D物理引擎如何利用重力使圓圈落入所需形狀的容器中。

我會感謝您的任何建議。

回答

0

如果你不是最好的解決方案,但只是任何體面的解決方案,迭代/物理方法應該工作:放置所有的圓圈,並對每對圓圈施加推力,直到它們不再重疊,或者你的循環用完了。 (您將無法確定圓圈是否適合您所在的區域,因此請確保例程終止)

如果您希望圓圈粘在一起,請將吸引力應用於任何不符合圓圈的圓圈交疊。

+0

謝謝,但這種方法的主要問題是,你不會將它們適合給定的形狀。喲不知道方形(矩形)或圓形會有多大。將每個新圓圈添加到計算後,您必須更改形狀。我需要實時生成可視化,這可能是一個矯枉過正的問題。 –