Isabel对 Imaginary Space 的评价
男朋友是学土木的,之前看他作业有工程制图相关,感觉和这个很像,于是就下载玩了一下。玩了一会我在想,能否找到一个对所有问题具有普适性且收敛速度最快的算法,根据给定的三视图使用最少的模块拼出模型?
对于这个问题我有一点不成熟的想法如下:
观看图片顺序为正视图-左视图-俯视图,模型表示为右手系,先解决冲突,再解决填充。最开始我的想法是在(x=0)铺满正视图,接着依据左视图进行层次调换,最后再解决俯视图的冲突。但是玩到第11关的时候我意识到,最少模块问题的解决必须要最大限度利用空间,想要进行最快地收敛必须利用这个特性:若模块完整地暴露在空间内,则能在三个方向上观察到该模块;若在任何一个面上对其产生遮挡,则观测能力-1,所以一开始铺满一整面并不是一个好的想法。
于是考虑通过每一层摆放正视图一行的模块作为初始状态(即,若正视图最下面一行从右至左三个块,倒数第二行从右至左两个块,则最下层从最原点开始从右至左三个块,倒数第二层从(x=1,z=1)开始从右至左两个块),接着对不满足左视图的模块进行调换。
为了保护正视图,左视图的调换只能在以左视图为正视图的每层上进行调整,调换规则为优先向右调换;左视图的块数不足填充时类比正视图的摆放,但条件为以左视图为正视图时,摆放块左/右原有块存在。
由于正视图和左视图的限制,俯视图的调整范围是有限的,目前还没有想到一个很完善的解决方案描述。
可能以后会试着把代码写出来,但是现在太懒了还没写hhhhh如果有朋友想到更好的解决方法欢迎一起讨论鸭(○゚ε゚○)
对于这个问题我有一点不成熟的想法如下:
观看图片顺序为正视图-左视图-俯视图,模型表示为右手系,先解决冲突,再解决填充。最开始我的想法是在(x=0)铺满正视图,接着依据左视图进行层次调换,最后再解决俯视图的冲突。但是玩到第11关的时候我意识到,最少模块问题的解决必须要最大限度利用空间,想要进行最快地收敛必须利用这个特性:若模块完整地暴露在空间内,则能在三个方向上观察到该模块;若在任何一个面上对其产生遮挡,则观测能力-1,所以一开始铺满一整面并不是一个好的想法。
于是考虑通过每一层摆放正视图一行的模块作为初始状态(即,若正视图最下面一行从右至左三个块,倒数第二行从右至左两个块,则最下层从最原点开始从右至左三个块,倒数第二层从(x=1,z=1)开始从右至左两个块),接着对不满足左视图的模块进行调换。
为了保护正视图,左视图的调换只能在以左视图为正视图的每层上进行调整,调换规则为优先向右调换;左视图的块数不足填充时类比正视图的摆放,但条件为以左视图为正视图时,摆放块左/右原有块存在。
由于正视图和左视图的限制,俯视图的调整范围是有限的,目前还没有想到一个很完善的解决方案描述。
可能以后会试着把代码写出来,但是现在太懒了还没写hhhhh如果有朋友想到更好的解决方法欢迎一起讨论鸭(○゚ε゚○)
13