Obszar samoprzecinającego się wielokąta

Obliczanie powierzchni aprosty nieregularny wielokątjest trywialny. Należy jednak wziąć pod uwagę samo-przecinający się wielokąt ABCDEF pokazany po lewej stronie poniżej:

                   

Jeśli użyjemy wzoru powiązanego powyżej, przechodząc przez punkty w kolejności wielokątów, otrzymamy obszar 0. (Obszar „zgodny z ruchem wskazówek zegara” anuluje obszar „przeciwny do ruchu wskazówek zegara”).

Jednak jeśli myposortuj punkty promieniowo wokół środka i oblicz pole, otrzymamy nieprawidłowy obszar wielokąta ABEDCF powyżej.

Jak najlepiej znaleźć widoczny obszar samoprzecinającego się wielokąta? (Jeśli odpowiedź wymaga utworzenia widmowych punktów dla każdego skrzyżowania, podaj szczegóły, jak najlepiej znaleźć skrzyżowania i jak je przemieścić we właściwej kolejności).

To pytanie powstało podczas badania przypadków skrajnych dla mojego rozwiązaniato pytanie.

Definiowanie obszaru

Definiuję „obszar” jako ilość pikseli widocznych podczas wypełniania wielokąta przy użyciu reguł „niezerowych” lub „parzystych”. Przyjmę odpowiedź na którekolwiek z nich, choć obie będą lepsze. Zauważ, że wyraźnie to robięnie zdefiniuj obszar na siebie, aby dwukrotnie policzyć obszar nakładania się.

questionAnswers(3)

yourAnswerToTheQuestion