Площадь пересечения прямоугольника и полигона НТС 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;