Я хочу найти «видимую» область нескольких перекрывающихся полигонов.
Допустим, у меня есть многоугольник polygonA
, и пусть область будет 100%
List<Vector2> polygonA; // points CW
Теперь у меня есть еще один многоугольник внутри polygonA
, который polygon1
(зеленый), и его площадь на данный момент легко вычисляется. Допустим, площадь polygon1
равна area_p1
%
List<vector2> polygon1; // points CW
Теперь у меня есть еще один многоугольник polygon2
(красный) внутри polygonA
, который перекрывает polygon1
, поэтому теперь область polygon1
изменено. на данный момент площадь% красного цвета легко рассчитать, но тогда какой-то другой многоугольник будет перекрывать красный многоугольник, и он будет продолжаться.
List<vector2> polygon2; // red
Итак, как мне рассчитать% площади видимого цвета внутри polygonA
.
Я думаю, что Clipper.cs может помочь, но я не могу найти способ его изобразить в единстве.