Площадь пересечения прямоугольника и полигона НТС TopologySuite

Я заинтересован в области динамического NetTopologySuite.Geometries.Polygon это находится внутри фиксированного прямоугольника ограничительной рамки (105x68).

Иногда он может вырваться из прямоугольника (что нормально), но меня интересует только область, которая закрыта ограничительной рамкой.

В общем, я хочу получить в результате:

//Polygon is completely inside my rectangle
var FinalArea = Polygon.Area();

// Polygon breaks out of bounding box
var FinalArea I Polygong.Area() - (double)AreaOutsideTheBoundingBox;

Как я могу добиться этого с помощью NTS Topology Suite в C#?

иллюстрация

1 ответ

Решение

Чтобы получить площадь многоугольника внутри прямоугольника:

poly.Intersection(rect).Area;

Чтобы получить площадь многоугольника за пределами прямоугольника:

poly.Area - poly.Intersection(rect).Area;

Чтобы получить площадь прямоугольника минус многоугольник:

rect.Difference(poly).Area;
Другие вопросы по тегам