怎么将零散的图元尽可能小占面积的集中在一起
本帖最后由 llsheng_73 于 2013-11-5 00:01 编辑有的时候会根据一些条件选择一些图元,比如某家人承包的地块、或者某个街区的公共绿地,它们通常是七零八落,虽然有个别的相距很近,而多数情况下都是远近不等不说,一般情况间距远大于自身尺寸。现在的问题是怎么以这些图元包容盒的中心为目的地,把它们集中起来,不能让它们相交(可以设一个安全距离,就是移动后零散图元间距不得小于这个安全距离),不需要过于考虑它们的方位关系(最初就离得很近的视为一个整体)。对于碰撞检测实在没什么概念,只能求教大家了 这个相当不容易, 有点象排料或裁衣服 这是个下料优化的问题 这个真心希望得到指点。。。 你的意思是不是指有一批图元,它们在空间上分散分布,想让它们保持大小不变、相互角度方位关系不变,但距离变小,且不能重合。如同经过放缩变小,但图元大小不变的效果?
如果是,那就按放缩的思路,各图元先概化为点,通过类似二分查找的形式,能在有限次数的试算后确定你需要的效果。
这个挺有意思的,但用途可能就是做示意图用的? 风树 发表于 2013-11-7 19:38 static/image/common/back.gif
这个挺有意思的,但用途可能就是做示意图用的?
对的,但是不知道怎么着手,希望支点招哦 风树 发表于 2013-11-7 19:35 static/image/common/back.gif
你的意思是不是指有一批图元,它们在空间上分散分布,想让它们保持大小不变、相互角度方位关系不变,但 ...
它们的大小不要变,当然到最后是可以变的,不过比例得一致 本帖最后由 风树 于 2013-11-8 10:36 编辑
llsheng_73 发表于 2013-11-8 09:39 static/image/common/back.gif
它们的大小不要变,当然到最后是可以变的,不过比例得一致
想到的思路就是上面说的,假设先模拟缩小一半的情况去算一下有没有碰撞,没有再缩小一半,直到发现碰撞,然后反过来放大1.5倍,看情况决定下一步是放大1.5倍还是缩小0.5;跳出循环的条件是每个图元都能满足最小距离和最大距离的要求(概化),同时限定一定的循环次数(间距再大的图元几次迭代可能就满足要求),防止因最小距离和最大距离的设定不当而进入死循环。