2010-07-04 21 views
4

我想要在幾個 緯度/經度上創建一個Voronoi圖,但要使用它們之間的大圓距 ,而不是(不準確的)畢達哥拉斯距離。Voronoi圖使用自定義(大圓)距離

我可以讓qhull/qvoronoi或其他Linux程序做到這一點嗎?

我考慮將點映射到3D,讓qvoronoi創建3D Voronoi圖[1],並將結果與​​單位球相交,但我不確定這很容易。

[1]我實現兩個緯度/經度(該 「通過地球」路徑)之間的3D距離是不一樣的大圓距離, 但它很容易證明這個變換保留相對 距離,這對於Voronoi圖來說很重要。

回答

3

我假設你找到了this article。從這一點來看,您似乎有使用3D嵌入的正確思路。你的問題是如何將結果與球體相交。

首先您需要考慮如何代表voronoi圖。如果你想在二維平面中以經緯度座標工作,那麼你的voronoi圖將包含彎曲的邊緣,所以最好使用3D表示。

如果您使用像qvoronoi這樣的程序,理論上應該只需要inifinite超平面數據(由Fo生成)。這給出了平面的方程和它對應的兩點。通常你只需要使用voronoi圖來測試包含在區域內,超平面就足夠了。