2012-08-16 88 views
0

我試圖創建一個功能,讓我發現周圍的圓的圓周的特定點外點。我搜索了網站,發現了一個問題,它在圈子內部的點上。查找點的圓

我已經創建了一個圓和該圓的點被存儲在向量,所述細胞。我還創建了20個病毒矢量。我也已經創建了一個函數來檢查其中一個病毒是否在單元格外。我正在嘗試在C++中創建一個函數,該函數將檢查命中該單元格的病毒,以查看病毒所有方向上的兩點範圍內是否存在其他病毒。我想要計算所有在該範圍內的病毒,然後將它們移動到同一位置的圓圈中。

我堅持如何找到的範圍內。任何幫助都會很棒。提前致謝!

+0

你需要知道如何找到兩個點之間的距離? – 2012-08-16 19:40:50

回答

0

在範圍R發現圓形病毒一些僞代碼:

Let r=distance between two circular viruses 
Let R=range to be checked 

if r is less than R, increment virus counter. 

Finding r is easy: 
r = square root of(square of(x(virus 1)-x(virus 2)) + square of(y(virus 1)-y(virus 2))) 
0

這樣可能比較簡單的數據存儲在一個矩陣。

例如爲:

0 0 0 0 0 
0 1 0 1 0 
0 0 0 0 0 
0 1 0 0 0 
0 0 0 0 1 

隨着1指示 「病毒」 是在該位置。

然後,您可以創建一個遞歸函數內找到2個單位病毒細胞碰撞的位置(該函數將採取矩陣作爲其參數)。