有沒有什麼辦法可以在我的表單中的特定半徑範圍內在地圖中心附近生成隨機位置? 我能獲得地圖與以下行中心:C#:如何在GMap.NET中的地圖中心附近生成隨機位置?
var center = gMapControl2.Position;
我做了一些研究,來到對面this職位,但它是在Java中。
有沒有什麼辦法可以在我的表單中的特定半徑範圍內在地圖中心附近生成隨機位置? 我能獲得地圖與以下行中心:C#:如何在GMap.NET中的地圖中心附近生成隨機位置?
var center = gMapControl2.Position;
我做了一些研究,來到對面this職位,但它是在Java中。
假設中心是(x0,y0),我們正在尋找距離中心最大距離爲maxDist的隨機位置(x,y)。 我們知道,
(x-x0)*(x-x0) + (y-y0)+(y-y0) <= maxDist *maxDist
所以首先我們發現在適當的距離爲X的隨機值,然後找一個隨機值Y:
int x = random.Next(-1* maxDist, maxDist);
int maxY =(int) Math.Floor(Math.Sqrt(maxDist * maxDist - x * x));
int y = random.Next(-1*maxY, maxY);
y += y0;
x += x0;
產生RMAX和RMIN的R的隨機數。爲0和360之間的theta生成一個不同的數字。現在使用基本的三角函數轉換爲(x,y)。
這種方法對我來說似乎最直觀,因爲所述的問題基本上是徑向對稱的。它也給你(R,Theta)你可能想要做的任何其他計算。