- Symulator MaSzyna -

Symulator EU07 (i nie tylko) => Pomoc doraźna => Wątek zaczęty przez: Mariusz1970 w 05 Grudnia 2009, 10:22:04

Tytuł: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
Wiadomość wysłana przez: Mariusz1970 w 05 Grudnia 2009, 10:22:04
Jeśli mamy taki trójkąt o współrzędnych:
x1,z1,y1
x2,z2,y2
x3,z3,y3

Dla jakich warunków symulator potraktuje jako zdegenerowany trójkąt?

Dostałem ćwiczbeny plik 4E_1]kabina_a.t3d, w którym to ma być ponad setkę zdegenrowanych trójkątów.
Dałem warunek, taki, że ma traktować jako zdegenerowany trójkąt wtedy, gdy:
x1=x2=x3 i y1=y2=y3 i z1=z2=z3, to w tym ćwiczebnym pliku znalazł mi tylko dwie sztuki tego:
1)
0.00277853 -0.0172683 0.0198364    0.0823477 0.810345
0.00277853 -0.0172683 0.0198364    0.082348 0.810345
0.00277853 -0.0172683 0.0198364    0.0823478 0.810345
2)
0.00277853 -0.0172683 0.0198364    0.0823477 0.810345
0.00277853 -0.0172683 0.0198364    0.0823481 0.810346
0.00277853 -0.0172683 0.0198364    0.082348 0.810345

Jak zmnieszyłem restrykcję np. tylko do
x1=x2 i y1=y2
itp, to wtedy wypisał mi około 8000 takich

Zaczynam podejrzewać, że może chodzić o to, że jeśli wartości bezwględne różnic pomiędzy x1-x2, x1-x3, x2-x3 (podobnie dla y i z), będą w odpowiednich granicach, to wtedy traktuje to jako zdegenerowany trójkąt.
W sumie to zgłupiałem i nie wiem jak to jest.
Tytuł: Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
Wiadomość wysłana przez: ShaXbee w 05 Grudnia 2009, 10:37:55
Warunek wygląda następująco:
            if ( (Vertices[i].Point==Vertices[i-1].Point) ||
                 (Vertices[i-1].Point==Vertices[i-2].Point) ||
                 (Vertices[i-2].Point==Vertices[i].Point) )

Czyli jeżeli dowolne dwa punkty są identyczne mamy do czynienia ze zdegenerowanym trójkątem.
Tytuł: Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
Wiadomość wysłana przez: Mariusz1970 w 05 Grudnia 2009, 11:00:02
Ok, Shax, dzięki. Oświeciło mnie po twoim słowie "identyczne" :).
Jest ok.
Tytuł: Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
Wiadomość wysłana przez: ShaXbee w 05 Grudnia 2009, 11:31:26
Ten warunek oczywiście nie łapie przypadków kiedy punkty są współliniowe. Robisz jakieś narzędzie do optymalizacji geometrii?
Tytuł: Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
Wiadomość wysłana przez: Mariusz1970 w 05 Grudnia 2009, 11:42:03
No mnie tam prosili, abym zrobił coś z t3d i z tymi zdegenerowanymi.
Idea jaką zaproponował libertyn89, ma polegać na tym, aby te zdegenerowane usuwać z t3d i pomniejszać odpowiednio NumVerts.

W sumie już to jest gotowe, tylko umówiłem się, że najpierw przetestuje to libertyn.

Druga koncepcja była taka, aby w przypadku tego zdegerowanego 3kąta, zmieniać jakąś współrzędną, na ale libertyn chciał tą pierwszą wersję.