从参考点为网格中的图块创建唯一 ID
Creating unique ID for tiles in grid from a reference point
我需要为已知以下信息的网格中的图块创建一个整数(无符号)ID:
- 方块从
(0, 0)
向上向右生长
- 总体范围已知
- 第一个图块以
(0, 0)
为中心
我的第一个想法是确定图块所在的行、列并将这两个数字组合起来;那是不成功的。之后,我想我可以使用每个图块的中心点并计算一个唯一的数字,代表它在 X 范围内的距离和 Y 范围内的距离 (0, 0)
.
如果您知道网格的宽度 - 它是 Wdt
格宽,那么
N = Col + Wdt * Row
要从数字中检索图块坐标:
Col = N % Wdt //integer modulo
Row = N // Wdt //integer division
我需要为已知以下信息的网格中的图块创建一个整数(无符号)ID:
- 方块从
(0, 0)
向上向右生长
- 总体范围已知
- 第一个图块以
(0, 0)
为中心
我的第一个想法是确定图块所在的行、列并将这两个数字组合起来;那是不成功的。之后,我想我可以使用每个图块的中心点并计算一个唯一的数字,代表它在 X 范围内的距离和 Y 范围内的距离 (0, 0)
.
如果您知道网格的宽度 - 它是 Wdt
格宽,那么
N = Col + Wdt * Row
要从数字中检索图块坐标:
Col = N % Wdt //integer modulo
Row = N // Wdt //integer division