Я знаю о последовательности Хэлтона . Но пока я не могу найти формулы, по которым генерируются точки. Также беспокоит вопрос, последовательность Халтона генерирует точки только в прямоугольнике? Или я могу генерировать точки в любом многоугольнике, используя последовательность Хэлтона? Если последовательность Хэлтона генерирует точки только в прямоугольнике, каким другим способом можно создать точки в многоугольнике?
Я так же попытался вытащить из JTS Test Builder(написанном на java). Методы генерирующие случайные точки в полигоне:
public static Geometry randomPointsInPolygon(Geometry g, int nPts) {
RandomPointsBuilder shapeBuilder = new RandomPointsBuilder(FunctionsUtil.getFactoryOrDefault(g));
shapeBuilder.setExtent(g);
shapeBuilder.setNumPoints(nPts);
return shapeBuilder.getGeometry();
}
public void setNumPoints(int numPts) { this.numPts = numPts; }
public static GeometryFactory getFactoryOrDefault(Geometry g)
{
if (g == null) return JTSTestBuilder.getGeometryFactory();
return g.getFactory();
}
public static GeometryFactory getGeometryFactory()
{
/**
* Allow this to work even if TestBuilder is not initialized
*/
if (instance() == null)
return new GeometryFactory();
return model().getGeometryFactory();
}
public void setExtent(Geometry mask)
{
if (! (mask instanceof Polygonal))
throw new IllegalArgumentException("Only polygonal extents are supported");
this.maskPoly = mask;
setExtent(mask.getEnvelopeInternal());
extentLocator = new IndexedPointInAreaLocator(mask);
}
public Geometry getGeometry()
{
Coordinate[] pts = new Coordinate[numPts];
int i = 0;
while (i < numPts) {
Coordinate p = createRandomCoord(getExtent());
if (extentLocator != null && ! isInExtent(p))
continue;
pts[i++] = p;
}
return geomFactory.createMultiPointFromCoords(pts);
}
И нашёл похожий вопрос на форуме.
Мне нужен быстрый алгоритм на C# для генерации точек в полигоне. Так как эта операция будет вызываться много раз.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
в ходе разработки приложения понадобилась генерация элементов управления кодом, но дилемма в том, что после этого невозможно очистить контролДанную...
Я создал пустой проект windows formsВ гайдах написано что вместе с файлом открывается и Windows Form constructor