2009-10-27 58 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