Autor Wątek:  Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?  (Przeczytany 2420 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3901
    • Zobacz profil
  • Otrzymane polubienia: 235
Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
« dnia: 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.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
« Odpowiedź #1 dnia: 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.

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3901
    • Zobacz profil
  • Otrzymane polubienia: 235
Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
« Odpowiedź #2 dnia: 05 Grudnia 2009, 11:00:02 »
Ok, Shax, dzięki. Oświeciło mnie po twoim słowie "identyczne" :).
Jest ok.
« Ostatnia zmiana: 05 Grudnia 2009, 11:21:02 wysłana przez Mariusz1970 »

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
« Odpowiedź #3 dnia: 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?

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3901
    • Zobacz profil
  • Otrzymane polubienia: 235
Odp: Kiedy symek traktuje w t3d jako zdegenerowane 3kąty?
« Odpowiedź #4 dnia: 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ę.