问题描述
我需要为已知以下内容的网格中的图块创建一个整数(无符号)ID:
- 图块从
(0,0)
向上和向右生长 - 总体范围是已知的
- 第一个图块位于
(0,0)
上
我的第一个想法是确定瓷砖所在的行,并合并这两个数字。那一直没有成功。之后,我想我可以使用每个图块的中心点并计算一个唯一的数字,该数字代表其从(0,0)
在X范围内的距离和在Y范围内的距离。
解决方法
如果您知道网格的宽度-它是Wdt
个瓷砖的宽度,那么
N = Col + Wdt * Row
要从数字中检索图块坐标:
Col = N % Wdt //integer modulo
Row = N // Wdt //integer division