|
|
Linia 86: |
Linia 86: |
| |width="500px" valign="top"|[[Grafika:GKIW_M7_Slajd14.png|thumb|500px]] | | |width="500px" valign="top"|[[Grafika:GKIW_M7_Slajd14.png|thumb|500px]] |
| |valign="top"| | | |valign="top"| |
| | <b>Zorientowanie ściany I</b> |
| | |
| | Rozpatrzmy przypadek wielościanu wypukłego. Jest to jeden z przykładów problemu eliminacji elementów zasłoniętych, dla którego można pokazać kilka efektywnych i jednocześnie prostych algorytmów. Można zauważyć, że jeżeli na scenie jest dowolny wielościan wypukły (ale tylko jeden !), to wnioskowanie o widoczności jego elementów jest dość proste. Traktując taką scenę jako zbiór wielokątów (z których każdy jest oczywiście ścianą wielościanu), można ten zbiór podzielić na trzy grupy: |
| | |
| | 1. Wielokąty widoczne przez obserwatora (wielokąty przednie). |
| | |
| | 2. Wielokąty niewidoczne – zasłonięte (wielokąty tylne). |
| | |
| | 3. Wielokąty, których rzut jest odcinkiem. |
| | |
| | Wielokąty ostatniej grupy są pomijalne, odpowiednie odcinki zostaną i tak narysowane jeśli pojawią się wielokąty widoczne. |
| | W pierwszej i drugiej grupie występują wielokąty, które w całości podlegają określonym zasadom widoczności i przynależności do grupy. Nie może zachodzić przypadek, że tylko część wielokąta jest widoczna (a druga część zasłonięta). |
| | A zatem rozwiązanie zadania wybór elementów widocznych w przypadku wielościanu wypukłego sprowadza się do określenia zbioru wielokątów należących do pierwszej grupy. I one powinny być (w całości) narysowane. |
| | Można pokazać trzy (co najmniej) różne sposoby rozwiązanie tak zdefiniowanego zdania. Pierwszy sposób ('''Rozwiązanie A''') polega na analizie położenia obiektów w przestrzeni. Definiowane są określone wektory a następnie jest wyznaczany iloczyn skalarny tych wektorów. Znak tego iloczynu określa przynależność do określonej grupy. Zwróćmy uwagę na fakt, że w tym przypadku nie ma w ogóle mowy o jakimkolwiek rzucie. Położenie obserwatora w przestrzeni w zupełności wystarczy. |
| | |
| |} | | |} |
| ---- | | ---- |