Grid image values to 2D array
我有一个类似于图像的网格,下面要以这种格式放入数组中:
1 2 3 4 5 6 | ;x = wall(black cells and grey boxes), s= start (red circle), g = goal(blue circle), 0 = available path(everything else) $data[5][5] = [["x","x","x","x","x"], _ ["x","s","0","x","x"], _ ["x","x","0","x","x"], _ ["x","x","0","g","x"], _ ["x","x","x","x","x"]] |
我以为可以使用这些颜色,但不确定如何使用。
看起来您拥有固定角度的视图
创建功能,将屏幕位置转换为网格位置并返回。
例如这样的东西(希望我正确地测量了像素):
1 2 | x = 236 + (+(u-uh)-(v-vh))*60; y = 133 + (-(u-uh)-(v-vh))*30; |
-
60,30 是x,y 中的像元大小 -
(236,133) 是中间单元格(uh,vh) 的中心位置,以像素为单位 -
uh,vh 是中心单元格中的坐标
将视图平移偏移添加到
1 2 3 4 5 6 7 8 9 | 0000x0000, 000xxx000, 00xxxxx00, 0xxxxxxx0, xxxxxxxxx, 0xxxxxxx0, 00xxxxx00, 000xxx000, 0000x0000, |
为您可能遇到的所有对象创建一组图像
每当您未找到匹配项时,都可以在运行时完成此操作,将单元格添加到项目列表中作为新对象类型。
遍历所有网格单元位置并与对象类型进行比较
对于像素精确渲染的图像,您可以直接比较1:1像素,如果不是这种情况,则需要更强大地比较对象。但是要使算法有效,我们需要查看通常可以遇到的所有对象类型,您可以进行比较:
不要忘记将与单元格区域的比较蒙版,只是不包括边界矩形角上的相邻单元格
[笔记]
没有更多信息就无法更具体