我在屏幕上有 8 个方向的 8 个光标。
我想将它们放入数组中并根据方向向量选择它们。顺序无关紧要,但我需要为上面看到的每个向量分配一维数组中的 i
坐标。我花了很长时间试图发明它的公式,但没有任何效果。
向量中的值可以是0,1,-1
。
伪代码:
Cursor getCursor(int x, int y) {
int i = TheFunctionINeed(x,y);
return cursors[i];
}
注意:因为很多人对我想要什么感到困惑,所以我使用了the answer制作以下 fiddle :Mapping vectors to array.
最佳答案
它包含 9 个元素,为了简单起见,我添加了 (0, 0)。
a = {(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 0), (0, 1), (1, -1), (1, 0), (1, 1)}
ZeroBasedIndex(x, y) = (x + 1) * 3 + (y + 1)
关于c# - 如何将8个方向映射到一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736500/