我试图在 C# 中创建一个函数,该函数将返回一个随机的 IPoint 特征,该特征应该在一个选定的多边形内,但我对如何进行完全着迷。
理想情况下,函数的定义如下:
public IPoint Create_Random_Point(IGeometry inGeom)
我试图在 C# 中创建一个函数,该函数将返回一个随机的 IPoint 特征,该特征应该在一个选定的多边形内,但我对如何进行完全着迷。
理想情况下,函数的定义如下:
public IPoint Create_Random_Point(IGeometry inGeom)
有一个名为 CreateRandomPoints 的地理处理工具,可用于在特定边界内生成点(例如在窗口范围内、多边形内或沿线)。看一看:
地理处理工具很容易在 arcobjects 代码中实现,但有时执行起来会有点慢。
只是为了将来参考,我创建了一个自定义函数,试图在 polgon 的范围内找到一个随机点。
private double GetRandomDouble(double Min, double Max)
{
//TODO:
// seed
Random random = new Random();
return random.NextDouble() * (Max - Min) + Min;
}
private IPoint Create_Random_Point(IGeometry inGeom)
{
double x = GetRandomDouble(inGeom.Envelope.XMin, inGeom.Envelope.XMax);
double y = GetRandomDouble(inGeom.Envelope.YMin, inGeom.Envelope.YMax);
IPoint p = new PointClass();
p.X = x;
p.Y = y;
return p;
}