フォームの特定の半径内で地図の中心付近のランダムな場所を生成する方法はありますか? 私は次の行を地図の中心を取得することができます。C#:GMap.NETで地図の中心付近にランダムな場所を生成する方法は?
var center = gMapControl2.Position;
私はいくつかの研究を行なったし、thisポストに出くわしたが、それはJavaであります。
フォームの特定の半径内で地図の中心付近のランダムな場所を生成する方法はありますか? 私は次の行を地図の中心を取得することができます。C#:GMap.NETで地図の中心付近にランダムな場所を生成する方法は?
var center = gMapControl2.Position;
私はいくつかの研究を行なったし、thisポストに出くわしたが、それはJavaであります。
中心が(x0、y0)であり、中心から最大距離maxDistのランダムな位置(x、y)を探しているとします。 RMAXとRMINの間にR用の乱数を生成し
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;
: 私たちは、その後、yのランダムな値を見つける
(x-x0)*(x-x0) + (y-y0)+(y-y0) <= maxDist *maxDist
だから最初に、我々は適切な距離でxのランダムな値を見つけることを知っています。 0と360の間のシータのために異なる番号を生成します。今、(x、y)に変換するために基本三角法を使用してください。
このアプローチは私にとって最も直感的だと思われます。なぜなら、述べたような問題は根本的に放射状に対称的なものだからです。また、他の計算のために(R、Theta)を与えます。