Tag: 几何

空间填充不等大小的圆圈

这是我的问题: 我需要在canvas中显示一堆圆圈。 存在任意数量的圆,每个圆具有预定义的半径。 圆的总面积始终小于canvas的面积。 我想定位圆圈,使它们占据canvas内可用的最大空间,而不会相互接触。 我的目标是实现视觉上令人愉悦的效果,其中圆圈在canvas内分布均匀。 我不知道这是否真的是“空间填充”,因为我的目标不是最小化元素之间的距离,而是最大化它。 这是我想要实现的一个例子: 我的第一个“蛮力”想法如下: 对于每个圆圈:计算其边界与每个圆圈边界之间的最短距离; 总结所有这些距离,称之为X. 计算所有X的总和。 随机更改圆圈之间的距离。 重做1-3以进行预设的迭代次数并获取在步骤(2)获得的最大值。 然而,这似乎并不优雅; 我确信有更好的方法来做到这一点。 有没有现成的算法来实现这样的布局? 我可以使用任何现有的库(JavaScript或Ruby)来实现这一目标吗? 编辑 这是接受答案的Javascript版本 ,它使用Raphael绘制圆圈。

Ruby数学gem

有没有人知道数学/几何操作是否有好的gem? 我需要一些这样的东西: 点产品 交叉产品 矢量之间的角度 矩阵 表面normale 矢量计算(加,减……) 奇异值分解 thx,tux