添加新格子e后其中一种效果:
在新增e后,将切割成4个象限
先重新添加格子b,在当前区域内将分成四个格子1、2、3、4
再重新添加格子d,在当前区域内将分成二个格子5、6,而格子3和5会先进行融合成一个格子3-5
再重新添加格子e,加入象限3-5, 格子数目新增到二个。
最终成为:
主要文件为 fog.lua 模块文件, 设计以下几个函数:
fog:add_rects(矩形列表)
矩形元素格式为
{
id = 字符串id,
x = ?, y = ?, w = ?, h = ?
}
纯测试产生四叉树:
lua ./test.lua
打印调试性log, 启动 -d 选项
lua ./test.lua -d
导出调试性图片, 启动 -e 选项,该导出需要依赖 imgexporter 库
make
lua ./test.lua -e
这一步骤会将每个步骤的这个树导出json文件到 output目录(假定是/data/output);
第二步,git@github.com:wilsonloo/imggenerater.git
然后执行以下指令即可在同一个output目录看到对应的图片:
cd imggenerater
python3 generate.py /data/output
每次新增矩形时,都会进行分给和合并;可以将迷雾数据拆分成两个部分,第一部分是当前的四叉树,第二部分是正在继续探索出来的迷雾列表,在探索完成时将第二部分的内部的矩形进行合并产生较少数量的格子,再依次加入到第一部分的四叉树当中;在探索过程中发生的 碰撞判断,首先在第一部分的四叉树继续判断, 查找不到时再在第二部分数据中进行判断;
一个问题是第二部分数据如何进行合并,假如探索是完全自动整张地图,第二部分会就退化成穷举法。
为第二部分数据设定一个格子数上限,当达到上限时马上进行合并。
]]>