eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Orientacja wielokątów
Ilość wypowiedzi w tym wątku: 6

  • 1. Data: 2014-10-30 15:55:18
    Temat: Orientacja wielokątów
    Od: Borneq <b...@a...hidden.pl>

    Mam n wierzchołków: 0,1,2,..n-1
    Teraz chcę sprawdzić czy są podane w kolejności zgodnej z ruchem
    wskazówek zegara czy przeciwnej,
    Inaczej: gdy mamy zgodnie z ruchem wskazówek zegara, wtedy po prawej
    stronie każdej krawędzi mamy wnętrze wielokąta a po lewej pustą
    przestrzeń. (gdy idziemy wraz z krawędziami mając i-tą na dole a
    i+1-szą u góry)
    To jest potrzebne do algorytmu wyznaczania unii wielokątów metodą
    Weilera-Athertona dla którego to algorytmu wymagana jest taka sama
    orientacja obu wielokątów, gdy by była różna, mógłbym jeden z nich
    odwrócić, ale jak to sprawdzić??
    Jakieś wyznaczniki? przy czym liczy się całość wielokąta, bo najpierw
    może zakręcać w jedną stronę a później zmienić kierunek.


  • 2. Data: 2014-10-30 16:21:42
    Temat: Re: Orientacja wielokątów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-10-30 o 15:55, Borneq pisze:
    > wskazówek zegara czy przeciwnej,
    > Inaczej: gdy mamy zgodnie z ruchem wskazówek zegara, wtedy po prawej
    > stronie każdej krawędzi mamy wnętrze wielokąta a po lewej pustą

    http://stackoverflow.com/questions/1165647/how-to-de
    termine-if-a-list-of-polygon-points-are-in-clockwise
    -order

    Czy na pewno zadziała metoda sumowania (x2-x1)(y2+y1), wyjątkowo prosta
    a podobno działa na niewypukłych i nawet samoprzecinających się


  • 3. Data: 2014-10-30 19:47:45
    Temat: Re: Orientacja wielokątów
    Od: bartekltg <b...@g...com>

    On 30.10.2014 15:55, Borneq wrote:
    > Mam n wierzchołków: 0,1,2,..n-1
    > Teraz chcę sprawdzić czy są podane w kolejności zgodnej z ruchem
    > wskazówek zegara czy przeciwnej,
    > Inaczej: gdy mamy zgodnie z ruchem wskazówek zegara, wtedy po prawej
    > stronie każdej krawędzi mamy wnętrze wielokąta a po lewej pustą
    > przestrzeń. (gdy idziemy wraz z krawędziami mając i-tą na dole a
    > i+1-szą u góry)
    > To jest potrzebne do algorytmu wyznaczania unii wielokątów metodą
    > Weilera-Athertona dla którego to algorytmu wymagana jest taka sama
    > orientacja obu wielokątów, gdy by była różna, mógłbym jeden z nich
    > odwrócić, ale jak to sprawdzić??
    > Jakieś wyznaczniki? przy czym liczy się całość wielokąta, bo najpierw
    > może zakręcać w jedną stronę a później zmienić kierunek.

    Nie masz jakiś warunków na ten wielokąt? Np nieprzecinające
    się krawędzie?
    Pentagram, z punktami w kolejności rysowania, jest prawo
    czy lewoskrętny? ;-)

    pzdr
    bartekltg



  • 4. Data: 2014-10-30 19:59:17
    Temat: Re: Orientacja wielokątów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-10-30 o 19:47, bartekltg pisze:
    > Nie masz jakiś warunków na ten wielokąt? Np nieprzecinające
    > się krawędzie?
    > Pentagram, z punktami w kolejności rysowania, jest prawo
    > czy lewoskrętny? ;-)

    Gdy w pentagramie mam punkt początkowy u góry, to gdy następny róg
    będzie bardziej po prawej stronie to mamy zgodnie z ruchem wskazówek
    zegara. Ciekawe tylko czy algorytm który podąłem ze StackOverflow
    poradzi sobie nie tylko z niewypukłymi ale także z samoprzecinającymi
    się. Zresztą to bardzo prosty a dobry algorytm, znak pokazuje orientację
    a połowa wielkości bezwzględnej pole wielokąta, który nie musi być wypukły


  • 5. Data: 2014-10-30 20:31:54
    Temat: Re: Orientacja wielokątów
    Od: bartekltg <b...@g...com>

    On 30.10.2014 16:21, Borneq wrote:
    > W dniu 2014-10-30 o 15:55, Borneq pisze:
    >> wskazówek zegara czy przeciwnej,
    >> Inaczej: gdy mamy zgodnie z ruchem wskazówek zegara, wtedy po prawej
    >> stronie każdej krawędzi mamy wnętrze wielokąta a po lewej pustą
    >
    > http://stackoverflow.com/questions/1165647/how-to-de
    termine-if-a-list-of-polygon-points-are-in-clockwise
    -order
    >
    >
    > Czy na pewno zadziała metoda sumowania (x2-x1)(y2+y1), wyjątkowo prosta
    > a podobno działa na niewypukłych i nawet samoprzecinających się

    Zadziała, bo to jest zorientowane pole powierzchni.

    Matematycznie, forma powierzchni to dx^dy. (to nie potegowanie
    tylko iloczyn zewnętrzny). Tw Stokesa i całka po powierzchni
    zamienia się po na całkę po brzegu z formy pierwotnej.
    Formą pierwotną jest m.in (nie jets wyznaczona jednoznacznie)
    y*dx. Po pocałowaniu tego pomiędzy punktami (x1,y1) i (x2,y2)
    dostajesz właśnie 0.5(x2-x1)(y2+y1). Aby całość miała sens,
    musisz przejść po krzywej zamkniętej.

    >
    > Gdy w pentagramie mam punkt początkowy u góry, to gdy następny róg
    > będzie bardziej po prawej stronie to mamy zgodnie z ruchem wskazówek
    > zegara.

    Zupełnie mnie to nie przekonuje.

    > Ciekawe tylko czy algorytm który podąłem ze StackOverflow
    > poradzi sobie nie tylko z niewypukłymi ale także z samoprzecinającymi
    > się. Zresztą to bardzo prosty a dobry algorytm, znak pokazuje
    > orientację a połowa wielkości bezwzględnej pole wielokąta, który nie
    > musi być wypukły

    Dostajesz wzór na zorientowaną powierzchnię (każdy element powierzchni
    liczysz z taką wagą, ile razy obiega go łamana, licząc w drugą stronę
    jako -1). I jak wielkokat jest porządny, to taka definicja jest zgodna
    z nasza intuicją. Ale czy to zawsze jest zgodne z definicją, której
    wymaga Twoj algorytm - tego na razie nie wiemy.

    pzdr
    bartekltg











  • 6. Data: 2014-10-30 20:44:28
    Temat: Re: Orientacja wielokątów
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-10-30 o 20:31, bartekltg pisze:
    >> Gdy w pentagramie mam punkt początkowy u góry, to gdy następny róg
    >> będzie bardziej po prawej stronie to mamy zgodnie z ruchem wskazówek
    >> zegara.
    >
    > Zupełnie mnie to nie przekonuje.

    Opiszmy 5 punktów na okręgu podobnie jak w zegarze, tylko będziemy mieli
    0 na górze, potem 1 aż do 4
    z 0 idziemy do punktu 2, tu mamy kreskę, jeszcze nie wiadomo jaka
    orientacja, potem idziemy do punktu 4, widać że skręciliśmy zgodnie z
    ruchem zegara, gdybyśmy teraz z 4 poszli do 0 otrzymali byśmy trójkąt
    zgodnie z ruchem zegara, ale mijamy, idziemy do 1, i zrobiliśmy dwa
    obroty zgodnie z ruchem wskazówek zegara.
    Ciekawe jakby to teraz sprawdzić tym algorytmem, to powiedziałbym w
    którą stronę.

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: