2009-10-27 17 views
1

我有我自己的存储在Vector2[,]数组中的Vector2s的线性网格,并且我还有另一个Vector2位于此网格内。我如何简单地提取数组中最近的4个网格点和它们的索引?我完全难住...如何简单地从线性网格获取x和y坐标?

+0

通过“线性网格”你是否意味着数组的值是增加值的顺序? – AnthonyWJones 2009-10-27 11:09:06

+0

正确。 (15个字符) – RCIX 2009-10-27 11:16:07

回答

2

我不知道我是否理解你的问题。你能以相对简单的方式处理它吗?

  1. 声明一个类型来保存以下信息:
    a。整数索引到您现有的Vector2数组中
    b。点距离测试矢量的距离
    c。 (可选)Vector2值。
  2. 声明新定义类型的数组以包含结果。
  3. 循环遍历现有的Vector2s数组。
  4. 对于每个Vector2,计算它与测试向量的距离。
  5. 将该距离与最后一个结果Vector2进行比较。如果小于该距离,则用当前Vector2的信息替换该结果向量。
  6. 虽然最后一个结果向量的距离小于上一个结果向量,但将其与先前的结果交换。 (用相同的矢量重复,现在处于倒数第二个位置,直到结果矢量按距测试矢量的距离排序)。
  7. 继续执行步骤3中开始的循环的下一次迭代。
+0

听起来不错,虽然我处于需要表演的位置。我会根据这个做出初步的方法,谢谢! (会upvote,但我跑了一天) – RCIX 2009-10-27 11:34:08

+0

我想我不明白你的观点,你有vector2s存储在一个二维数组。这是否意味着您可以立即确定网格的特定区域内是否有任何Vector2s?如果是这样的话,可能会有助于指出,您可以在将要放置测试向量的网格单元格开始搜索,在网格中向外旋转,直到您正在查看的单元格不可能有比您更接近的任何矢量找到了。 – BlueMonkMN 2009-10-28 11:05:09