寻找在AS3中的虚拟房间中自动排列一组对象(家具)的想法

时间:2010-06-02 03:13:42

标签: flex flash actionscript-3 algorithm

首先,我不想在视觉上安排用鼠标拖动它们的3D模型,我想要的只是:

给定一定尺寸的房间(L,W,H)并给出一组元素,如床,椅子等(当然有L,W,H尺寸)我想自动安排这些元素以利用尽可能多的空间。所以我希望能够在给定的房间里放置尽可能多的家具。最后,我需要在房间内直观地表示所安排的项目。

我的第一个想法是使用一个项目数组并使用array.sortOn([“l”,“w”,“h”] Array.NUMERIC)对其进行排序,然后定义对象之间的间隙并进行数学运算把物品放在另一个旁边,等等,但这不是一个好方法,因为有些物品可能放在另一个物品的顶部(相同大小的盒子,桌子顶部的盒子等)。

我真的没有3D编程经验,这就是我寻求帮助的原因。提前谢谢。

1 个答案:

答案 0 :(得分:4)

这就是所谓的"Knapsack Problem" - 如果你能解决它,你将获得诺贝尔奖;-)

基本上你在处理你的情况下相当少量的对象,所以你可能可以逃脱强制解决方案。否则,可以花一些时间在维基百科上,阅读一些多年来开发的近似快捷方式。