eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Siatka/Topologia trójkątna/Wyszukiwanie obwiedni
Ilość wypowiedzi w tym wątku: 14

  • 11. Data: 2017-02-20 21:54:08
    Temat: Re: Siatka/Topologia trójkątna/Wyszukiwanie obwiedni
    Od: bartekltg <b...@g...com>

    On 20.02.2017 21:24, Mateusz Bogusz wrote:
    >> Struktura danych, która pozwoli ci w czasie stałym dowiedzieć się o
    > sąsiadach.
    >> Np. mógłbyś mieć listę wierzchołków, a trójkąty opisywać indeksami do tej
    >> listy.
    >
    > To mam, na wejściu dostaję trzy tablice: wierzchołków, trójkątów w
    > postaci 3 kolejnych indeksów wierzchołków, normalnych wierzchołków.


    A jednak dobre marudziłem, że nie opisałeś tego porządnie;>
    W opisie mówiłeś o normalnych trójkąta, i tam wydawało się oczywiste,
    że normalne to normalne powierzchni trójkąta. Mogło jedynie dziwić,
    jak chcesz znaleść trójkąty o identycznej normalnej, bo przeszkadza
    precyzja obliczeń.

    Ty piszesz o normalnych wierzchołków. Znów "oczywistym jest*)"
    czyli się domyślam, że masz gładką powierzchnię i interpolujesz
    sobie normalną na trójkącie (jak to w grafice się robi).

    Ale wtedy
    >>>3. Szukam wszystkich trójkątów, które mają tą samą normalną - O(n)
    Oznacza, że szukasz tych, które gdzieś na swojej powierzchni mają
    normalną taką jak wyznaczona?

    Dla samego zadania nie ma to wielkiego znaczenia, ale cały czas może
    si,e to zmienić, bo zajmujemy się domyśleniami jak w (*), a jeden
    domyśli się jednego, drugi czego innego, a trzeci uzna, żę równie
    dobrze mogą być to obie wersje, więc nie bedzie nic pisał, póki
    się nie wyjaśni;>


    >> Natomiast każdy wierzchołek miałby jeszcze listę trójkątów do których
    >> należy. Wtedy stwierdzenie, które trójkąty mają wspólne wierzchołki
    >> byłoby
    >> szybkie.
    >
    > Jakbym to dostawał za free, to tak :-) Większość razy liczę obwiednię
    > dla nowego zestawu tablic, a cachowanie wszystkiego w pamięci też nie
    > wchodzi w grę. Ale dzięki za pomysł, pogłówkuję.

    Zrobienie tablicy to kodującej to 3*liczba trójkątów + liczba punktów
    (na tablicę indeksów, gdzie w głownej tablicy są wpisy dodanego
    trójkąta).
    Włąśnie dlatego, że ta struktura jest statyczna, raz tworzona,
    to nie trzeba się bawić w hashmapy.


    >> Ad 2. Możesz posortować trójkąty ze względu na normalną, wtedy masz
    >> O(nlgn),
    >> albo nawet wrzucić do tablicy mieszającej: O(1) oczekiwany.
    >
    > Też zawsze jakiś zysk.

    Przygotowanie tak danych zajmuje wiecej czasu niż ich przejrzenie
    w poszukiwaniu zadanej normalnej.
    Jeśli robisz to tylko raz, nie ma żadnego zysku.
    Co innego, jeśli takich operacji 'gdzie na powierzchni jest zadana
    normalna' robisz dla wiekszej lioczby wektorów.

    No i znów napotykamy problem, czy ta "normlana trójkąta" to normalna
    do powierzchni, czy jakaś funkcja norlanlych przypisanych wierzchołkom.

    pzdr
    bartekltg



  • 12. Data: 2017-02-20 22:39:07
    Temat: Re: Siatka/Topologia trójkątna/Wyszukiwanie obwiedni
    Od: "M.M." <m...@g...com>

    On Friday, February 17, 2017 at 5:13:36 AM UTC+1, bartekltg wrote:
    > On 16.02.2017 22:52, bartekltg wrote:
    > > On 16.02.2017 19:17, Mateusz Bogusz wrote:
    > >> 1. Znajduję trójkąt w który trafiłem promieniem.
    > >> 2. Liczę normalną trójkąta
    > >> 3. Szukam wszystkich trójkątów, które mają tą samą normalną - O(n)
    > >> 4. Wyszukuje spośród nich te, które mają wspólny wierzchołek z trójkątem
    > >> który trafiłem lub z innym który do niego ma - O(n^2)
    >
    > A tego w sumie to w ogóle nie rozumiem. Na poziomie gramatycznym.
    >
    > "..lub z innym który do niego ma"
    >
    > Co?
    >
    > >> 5. Wyszukuję tylko te krawędzie trójkątów, które należą tylko do jednego
    > >> trójkąta - O(n)
    > >>
    > >> Wiem że da się lepiej. Jakaś podpowiedź? :-)
    > >
    > > Nie opisałeś problemu, który chcesz roziązać.
    >
    > pzdr
    > bartekltg

    Ja też nie zrozumiałem zbyt wiele.


  • 13. Data: 2017-02-20 23:01:58
    Temat: Re: Siatka/Topologia trójkątna/Wyszukiwanie obwiedni
    Od: Mateusz Bogusz <m...@o...pl>

    > A jednak dobre marudziłem, że nie opisałeś tego porządnie;>
    > W opisie mówiłeś o normalnych trójkąta, i tam wydawało się oczywiste,
    > że normalne to normalne powierzchni trójkąta. Mogło jedynie dziwić,
    > jak chcesz znaleść trójkąty o identycznej normalnej, bo przeszkadza
    > precyzja obliczeń.
    >
    > Ty piszesz o normalnych wierzchołków. Znów "oczywistym jest*)"
    > czyli się domyślam, że masz gładką powierzchnię i interpolujesz
    > sobie normalną na trójkącie (jak to w grafice się robi).
    >
    > Ale wtedy
    >>>>3. Szukam wszystkich trójkątów, które mają tą samą normalną - O(n)
    > Oznacza, że szukasz tych, które gdzieś na swojej powierzchni mają
    > normalną taką jak wyznaczona?
    >
    > Dla samego zadania nie ma to wielkiego znaczenia, ale cały czas może
    > si,e to zmienić, bo zajmujemy się domyśleniami jak w (*), a jeden
    > domyśli się jednego, drugi czego innego, a trzeci uzna, żę równie
    > dobrze mogą być to obie wersje, więc nie bedzie nic pisał, póki
    > się nie wyjaśni;>

    Ponieważ mam normalne wierzchołków, to normalną trójkąta liczę tak:
    (n1+n2+n3)/3.

    A trójkąty mają tą samą/podobną normalną, gdy ich iloczyn skalarny jest
    bliski 1 :-)

    --
    Pozdrawiam,
    Mateusz Bogusz


  • 14. Data: 2017-02-20 23:37:43
    Temat: Re: Siatka/Topologia trójkątna/Wyszukiwanie obwiedni
    Od: bartekltg <b...@g...com>

    On 20.02.2017 23:01, Mateusz Bogusz wrote:
    >> A jednak dobre marudziłem, że nie opisałeś tego porządnie;>
    >> W opisie mówiłeś o normalnych trójkąta, i tam wydawało się oczywiste,
    >> że normalne to normalne powierzchni trójkąta. Mogło jedynie dziwić,
    >> jak chcesz znaleść trójkąty o identycznej normalnej, bo przeszkadza
    >> precyzja obliczeń.
    >>
    >> Ty piszesz o normalnych wierzchołków. Znów "oczywistym jest*)"
    >> czyli się domyślam, że masz gładką powierzchnię i interpolujesz
    >> sobie normalną na trójkącie (jak to w grafice się robi).
    >>
    >> Ale wtedy
    >>>>> 3. Szukam wszystkich trójkątów, które mają tą samą normalną - O(n)
    >> Oznacza, że szukasz tych, które gdzieś na swojej powierzchni mają
    >> normalną taką jak wyznaczona?
    >>
    >> Dla samego zadania nie ma to wielkiego znaczenia, ale cały czas może
    >> si,e to zmienić, bo zajmujemy się domyśleniami jak w (*), a jeden
    >> domyśli się jednego, drugi czego innego, a trzeci uzna, żę równie
    >> dobrze mogą być to obie wersje, więc nie bedzie nic pisał, póki
    >> się nie wyjaśni;>
    >
    > Ponieważ mam normalne wierzchołków, to normalną trójkąta liczę tak:
    > (n1+n2+n3)/3.

    Ja bym to jeszcze znormalizował. Bo tak dostaniesz normalną o dlugości
    mniejszej niż jeden.

    Za to wtedy nie trzeba dzielić przez 3 "wystarczy"
    (n1+n2+n3)/|n1+n2+n3|


    <dygresja>
    Jak bardzo nie chcesz liczyć pierwiastka (ale karty graficzne,
    bo dalej wygląda to na coś z grafiki, liczą przyblizony pierwiastek
    sprawnie) można zrobić coś takiego.

    n = n1+n2+n3
    k = (1-n.*n)/2 //n'*n to suma kwadratów składowych

    n = n * (1+k))

    lub

    n=n*(1+k + 3/2 *k^2)

    To drugie daje błąd jak dokładność pojedynczej precyzji dla normalnych
    różniących się o ~5 stopni.
    <~dygresja>



    > A trójkąty mają tą samą/podobną normalną, gdy ich iloczyn skalarny jest
    > bliski 1 :-)

    Ale wtedy, w zależności od przyjętego epsylona, może się zdarzyć, że
    dwa sąsiednie trójkąty zostaną uznane za pasujące, albo żaden,
    mimo, że interpolowana normalna odpowiadające szuknej na trójkącie
    występuje.

    Nie przeszkadza to?


    Można by testować, czy normlana n występuje na trójkącie rozpisując
    ją jako sumę a1 n1 + a2 n2 + a3 n3 (rozwiązanie układu rownań 3x3,
    nie tak źle) i sprawdzić, czy wszytki a_i są dodatnie.

    Problemem będą płaskie powierzchnie, gdzie co najmniej dwie n_i
    są sobie równe.

    pzdr
    bartekltg




strony : 1 . [ 2 ]


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: