[英]Create a random point within a polygon using arcobjects in C#?
我試圖在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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.