【发布时间】:2011-09-04 14:29:46
【问题描述】:
我有一个 500 x 400 像素的正方形,里面有一个 100 像素的网格。现在我想用与网格对齐的更小的随机大小的正方形填充那个正方形。这意味着较小的正方形的大小可以是 100、200、300 或 400 像素。它们的大小和位置需要是随机的,因此每次运行时输出看起来都会有所不同。
此图像显示了大正方形、它的网格以及我正在尝试创建的带有较小正方形的可能输出。
我在 Ruby / Sinatra 中使用 DIV 生成这个,但我想这个问题对于实际使用的算法更普遍。
关于如何用最少的代码做到这一点有什么建议吗?
【问题讨论】:
-
给定一个正方形,放置它的位置是有限的。如果您不担心速度:生成最大的随机正方形大小;把它放在所有可能的地方;随机选择一个并放上去。如果没有可能的位置,请减小最大尺寸。
标签: ruby algorithm geometry sinatra