在笛卡尔坐标的单个数组中查找索引

时间:2014-07-27 07:46:48

标签: c# math cartesian-coordinates

我正在试图找出一些应该非常简单的东西,由于某些原因我找不到答案。我现在一直在尝试过去几个小时的公式。采用网格10的笛卡尔坐标系10乘以0,0到10,10。每个坐标都有一个浮点数(确定高度),并且它们已经被行读取到第一行(0,0)到第(10,0)行第二行(0,1)到(10,1)的float []行)。现在我想编写一个辅助方法,以获取某个笛卡尔坐标fe的高度:(10,0)。那个浮点数将驻留在float []中的索引9处,而(0,1)将位于索引10处。我尝试了几次尝试,但每次(0,0)都是一个顽固的骡子。以下是我尝试的一些公式。

Z = (Y * 10 + X) 
  works for 0, 0 but not really for 10, 0 cause that index should be 9
Z = ((Y * 10 + X) - 1) 
  works for 10, 0 but well not for 0, 0

我曾经尝试了一些更复杂但现在无法回想起它们,因为我写下来的记事本已经关闭而没有保存。如果有人能让我朝着正确的方向前进,我会很感激,但请使用简单的数学解释。

1 个答案:

答案 0 :(得分:2)

如果你的网格是10乘10,那么它从(0,0)到(9,9)。 从(0,0)到(10,0)的行表示连续11个项目,因此您的函数应为:

Z = (Y * 11 + X)