给定网格坐标,我如何确定它们落入的单元格的中心点?

时间:2010-08-23 20:16:33

标签: language-agnostic math geometry appcelerator

我正在使用适用于iPhone的Appcelerator Titanium开发一款简单的棋盘游戏(javascript - 并不是真的对这个问题很重要)。

我的问题不是特定于语言,而是一般的编程和数学问题。

我有一个10个字乘10行(100个单元格)的“单元格”网格。这是一个棋盘游戏,比如跳棋/选秀。

从顶部开始向下移动,行标记为“A”到“J”

从左侧开始向右移动,列标记为“0”到“9”

每个单元格为32x32(像素)。

我可以将一个令牌拖到网格上/上方,当我发布时,它会向我报告我释放的位置的x / y坐标,例如:124,302。我在变量中可以使用这些坐标。

所以我的问题是,如何确定我释放的细胞的中心点,以便我可以将该标记置于该细胞中心?

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:2)

使用整数除法来“舍去”原始坐标。

x = (x / 32) * 32 + 16;
y = (y / 32) * 32 + 16;

因为数字是2的幂,所以你也可以使用位操作。

x = (x & ~0x1F) | 0x10;