2015-12-18 25 views
3

隨機點我使用更好的辦法來接地球上

$lat=rand(0-pi()*1000000,pi()*1000000)/1000000; 
$lon=rand(0-pi()*1000000,pi()*1000000)/1000000; 

挑一個地球上任意一點(弧度),但是在點此方法將導致是因爲1度更加緊密附近民調則赤道附近$ lon是在赤道附近投票的較小距離。

如何獲得更好的分配任何想法?

+0

我最初的想法是不同的座標系,如極座標使用RHO和θ角,將工作這些。但經過反思,我意識到這無濟於事。你基本上已經得到了一個球形平鋪問題:你需要一個覆蓋球體的近似區域_X_的系統。一旦你有了,你可以給它們編號並使用普通的隨機數機制來選擇一個。所以也許你應該谷歌搜索「平鋪一個球體」。 –

+0

你想要什麼值的範圍? – Mxsky

+0

考慮重新編寫這是一個數學問題併發布到http://math.stackexchange.com/ –

回答

1

基於this article on Wolfram你需要的東西是這樣的:

$long = pi() - 2 * pi() * rand(0, 1000000)/1000000; 
$lat = pi()/2 - acos(2 * rand(0, 1000000)/1000000 - 1); 
+0

通過我的文章'$ LAT = ACOS(蘭特(0,1000000)/ 500000-1)的理解;'請注意我簡化了'2/1000000' –

+0

在這種情況下,它會之間0和pi()。我以爲你需要它-pi()/ 2和pi()/ 2。 –

+0

是的,我現在看到它。謝謝。 –