• Nie Znaleziono Wyników

Układy współrzędnych

W dokumencie Grafika komputerowa I – MIM UW (Stron 40-45)

4. Elementy geometrii afinicznej

4.2. Układy współrzędnych

Mając pojęcia odległości i kąta, możemy określić miary, takie jak pole powierzchni i objętość. Po to, by to wszystko obliczać, potrzebny jest jakiś układ współrzędnych.

Istotne jest, że w dowolnej przestrzeni liniowej (oprócz zerowymiarowej) istnieje wiele róż-nych iloczynów skalarróż-nych. Każdy z nich określa kąty i odległości inaczej. Możemy wybrać jeden z nich, wyróżniając pewien układ współrzędnych kartezjańskich i postulując, że wersory osi właśnie tego układu mają długość 1 i są wzajemnie do siebie prostopadłe (co określa się stwierdzeniem tworzą układ ortonormalny).

4.2. Układy współrzędnych

4.2.1. Współrzędne kartezjańskie

Rysunek 4.1. Punkty w układach odniesienia układów współrzędnych kartezjańskich.

Ustalmy dowolne punkty p0, . . . , pn w n-wymiarowej przestrzeni afinicznej E. Jeśli układ wektorów v1= p1− p0, . . . , vn= pn− p0 jest liniowo niezależny (jest bazą przestrzeni wektorów swobodnych), to można go użyć do określenia układu współrzędnych w E; dla dowolnego punktu

q ∈ E istnieje dokładnie jeden ciąg liczb x1, . . . , xn, taki że

q = p0+

n X i=1

xi(pi− p0). (4.1)

Liczby x1, . . . , xn to współrzędne kartezjańskie punktu q.

Punkt p0 jest początkiem układu i razem z wektorami v1, . . . , vn (zwanymi wersorami osi) tworzy układ odniesienia rozpatrywanego układu współrzędnych kartezjańskich.

Ciąg liczb będących współrzędnymi (nie tylko kartezjańskimi) punktu wygodnie jest przed-stawiać w postaci macierzy. Może to być macierz kolumnowa (tu będzie stosowana ta konwencja) lub wierszowa (spotykana często w literaturze i w różnych pakietach oprogramowania). Użycie macierzy umożliwia przedstawienie przekształceń za pomocą mnożenia macierzy; powyższe dwie konwencje różnią się wtedy kolejnością zapisu czynników.

Pewien układ współrzędnych w przestrzeni trójwymiarowej wyróżnimy i nazwiemy ukła-dem globalnym, albo ukłaukła-dem świata. W tym układzie będziemy ustawiać rozmaite przed-mioty, z których składa się scena do przedstawienia na obrazie, oraz „kamerę”, czyli obiekt określający odwzorowanie przestrzeni trójwymiarowej na płaszczyznę obrazu. Przyjmiemy, że iloczyn skalarny w tym układzie jest dany wzorem

ha, bi = aTb,

przy czym utożsamiliśmy tu wektory (swobodne) z ich macierzami (kolumnowymi) nych w układzie globalnym. W konsekwencji, układ odniesienia globalnego układu współrzęd-nych składa się z wektorów o długości 1, wzajemnie do siebie prostopadłych — wektory układu odniesienia stanowią bazę ortonormalną przestrzeni R3. W wielu innych układach współrzędnych iloczyn skalarny jest określony tym samym wzorem; układ odniesienia każdego takiego układu współrzędnych, który będziemy nazywać układem prostokątnym, jest też bazą ortonormalną. Pozostałe układy współrzędnych będziemy nazywać układami ukośnymi.

Dowolny układ współrzędnych jest prawoskrętny albo lewoskrętny; przynależność do jednej z tych klas nazywa się orientacją. Nazwa jest kwestią umowy; przyjmiemy, że układ globalny jest prawoskrętny i prawoskrętny jest też układ wektorów wyznaczonych przez kciuk, palec wskazujący i palec środkowy prawej ręki (rys.4.2). Orientacja jest związana z kolejnością współrzędnych; przestawienie dowolnych dwóch współrzędnych (czyli przestawienie dowolnych dwóch wektorów układu odniesienia) powoduje zmianę orientacji na tę drugą.

Rysunek 4.2. Określenie układu prawoskrętnego.

4.2.2. Współrzędne barycentryczne

Równość (4.1) można zapisać w bardziej symetrycznej postaci,

q = n X i=0 bipi, w której b0 = 1 −Pn

i=0xi oraz bi = xi dla i = 1, . . . , n. Liczby binazywają się współrzędnymi barycentrycznymi punktu q w układzie odniesienia p0, . . . , pn.

Rysunek 4.3. Znaki współrzędnych barycentrycznych na płaszczyźnie.

Fizyczna interpretacja współrzędnych barycentrycznych jest następująca: niech bi oznacza masę odważnika umieszczonego w punkcie pi. Poszczególne odważniki mogą mieć masy do-datnie, ujemne, a także równe 0, ale zakładamy, że ich suma jest równa 1. Wtedy punkt q, którego współrzędnymi barycentrycznymi w układzie odniesienia p0, . . . , pn są liczby bi, jest środkiem ciężkości układu punktów pi (stąd i z greki wzięła się nazwa tych współrzędnych). Na płaszczyźnie punkty p0, p1, p2, które stanowią układ odniesienia układu współrzędnych barycen-trycznych, są wierzchołkami trójkąta. Współrzędne barycentryczne dowolnego punktu wewnątrz tego trójkąta są dodatnie; punkty każdej z trzech prostych, na których leżą boki trójkąta, mają jedną ze współrzędnych barycentrycznych równą 0, a punkty na zewnątrz trójkąta mają jedną lub dwie współrzędne barycentryczne ujemne.

Przykład zastosowania: przypuśćmy, że dana jest funkcja ciągła f , której dziedzina jest wielokątem, składającym się z trójkątów o rozłącznych wnętrzach. Wykres tej funkcji w każdym trójkącie zawiera się w płaszczyźnie (czyli też jest trójkątem, zobacz rysunek (4.4)), a więc jeśli wprowadzimy układ współrzędnych kartezjańskich na płaszczyźnie zawierającej dziedzinę, to we wspomnianych trójkątnych fragmentach dziedziny funkcja f jest wielomianem pierwszego stop-nia tych współrzędnych. Należy obliczyć wartość funkcji f w dowolnym punkcie q na podstawie wartości tej funkcji w wierzchołkach trójkąta zawierającego punkt q.

W grafice komputerowej powyższe zadanie rozwiązuje się podczas cieniowania trójkątów. Najprostsza (i powszechnie stosowana, a w szczególności implementowana w sprzęcie, tj. w pro-cesorach graficznych) metoda polega na nadaniu każdemu pikselowi należącemu do trójkąta na obrazie wartości (koloru) otrzymanej przez interpolację wartości podanych w wierzchołkach (jest to tzw. cieniowanie Gourauda).

Załóżmy, że mamy obliczyć wartość funkcji f w (pojedynczym) punkcie q (którego współ-rzędne kartezjańskie są dane) i znamy wszystkie trójkąty, tj. współwspół-rzędne kartezjańskie ich wierzchołków i wartości funkcji f w tych punktach. Aby obliczyć wartość funkcji f (q), należy 1. znaleźć wierzchołki pi, pj, pk trójkąta zawierającego punkt q,

Rysunek 4.4. Wykres funkcji kawałkami pierwszego stopnia.

2. obliczyć współrzędne barycentryczne bi, bj, bk punktu q w układzie odniesienia pi, pj, pk, rozwiązując układ równań liniowych

xi xj xk yi yj yk 1 1 1 bi bj bk = xq yq 1 ,

którego współczynnikami są współrzędne kartezjańskie odpowiednich punktów, 3. obliczyć f (q) = bif (pi) + bjf (pj) + bkf (pk).

Sposób obliczania współrzędnych barycentrycznych punktów w przestrzeni trójwymiarowej jest taki sam; układ odniesienia składa się z wierzchołków dowolnego czworościanu (tj. z dowol-nych czterech punktów nie leżących w jednej płaszczyźnie). Ze współrzęddowol-nych kartezjańskich tych punktów i punktu q, którego współrzędne barycentryczne chcemy obliczyć, tworzymy układ równań liniowych xi xj xk xl yi yj yk yl zi zj zk zl 1 1 1 1 bi bj bk bl = xq yq zq 1 , i rozwiązujemy. 4.2.3. Współrzędne jednorodne

Dowolnemu punktowi w n-wymiarowej przestrzeni afinicznej z ustalonym układem współ-rzędnych kartezjańskich możemy przyporządkować współrzędne jednorodne; jest ich n + 1, przy czym ostatnia z tych współrzędnych jest różna od zera. Współrzędne kartezjańskie otrzy-mamy dzieląc pierwsze n współrzędnych jednorodnych przez ostatnią, np. w przestrzeni trójwy-miarowej punkt, którego współrzędnymi jednorodnymi są liczby X, Y , Z, W , ma współrzędne kartezjańskie x = WX, y = WY , z = WZ. Najprostszy sposób otrzymania współrzędnych jed-norodnych to dołączenie jedynki do współrzędnych kartezjańskich danego punktu. Ostatnią współrzędną jednorodną będziemy nazywać współrzędną wagową.

Jest oczywiste, że pomnożenie wszystkich współrzędnych jednorodnych przez dowolną liczbę inną niż 0 daje w wyniku współrzędne jednorodne tego samego punktu. Przymiotnik „ jednorod-ne” oznacza w matematyce właśnie tę cechę różnych obiektów. Współrzędne jednorodne wydają

się być „nieoszczędne”, jeśli chodzi o ilość zajmowanego miejsca i czas przetwarzania punktów, ale dają liczne i istotne korzyści w zastosowaniach.

Rysunek 4.5. Model płaszczyzny afinicznej i jej przestrzeni wektorów swobodnych.

Rozważmy przestrzeń współrzędnych jednorodnych R3. Zbadamy jej związek z dwu-wymiarową przestrzenią afiniczną E i jej przestrzenią wektorów swobodnych V . Przestrzeń E możemy utożsamić z warstwą W = 1 przestrzeni współrzędnych jednorodnych, a przestrzeń V z warstwą W = 0 (która jest podprzestrzenią liniową).

Jeśli W 6= 0, to wektor [X, Y, W ]T reprezentuje punktX

W,WY , 1T

. Wszystkie takie wektory reprezentują pewne punkty przestrzeni E, natomiast pozostałe reprezentują kierunki

wekto-rów w przestrzeni wektowekto-rów swobodnych V . Jeśli uznamy, że nie interesują nas różnice między

punktami przestrzeni E i kierunkami wektorów w V (które są nazywane punktami niewłaści-wymi), to otrzymamy przestrzeń rzutową i okaże się, że zajmujemy się geometrią rzutową. Jeśli chcemy wykonywać rachunki na punktach i wektorach reprezentowanych przez wekto-ry współrzędnych jednorodnych, dopuszczając różne wagi (czyli różne wartości ostatniej współ-rzędnej jednorodnej), to musimy „uzgodnić” reprezentacje. Rozważmy przykład — wyznaczanie środka odcinka, którego końce są reprezentowane przez macierze [0, 0, 1]T i [−2, 0, −2]T. Jeśli obliczymy macierz 12([0, 0, 1]T + [−2, 0, −2]T) = [−1, 0, −12]T, to otrzymamy punkt który nie leży nawet na naszym odcinku (współrzędne kartezjańskie końców tego odcinka to [0, 0]T i [1, 0]T, a otrzymana macierz reprezentuje punkt [2, 0]T). Aby dostać poprawny wynik, należy pomnożyć macierz współrzędnych jednorodnych jednego punktu przez taki czynnik, aby ostat-nia współrzędna obu argumentów była taka sama. Nieco większy kłopot sprawiają wektory swobodne; macierz współrzędnych jednorodnych reprezentuje tylko kierunek takiego wektora i trzeba „z zewnątrz” dostarczyć informację, jakiej współrzędnej wagowej punktów odpowiada dana macierz współrzędnych jednorodnych.

Podobnie jak współrzędne kartezjańskie, możemy „ujednorodnić” także współrzędne ba-rycentryczne; wystarczy opuścić założenie, że ich suma jest równa 1. Podanie dla ustalonego układu współrzędnych barycentrycznych ciągu dowolnych n + 1 liczb m0, . . . , mn, których su-ma jest różna od 0, określa punkt, którego współrzędne barycentryczne otrzysu-mamy dzieląc te liczby przez ich sumę. Oczywiście, suma jednorodnych współrzędnych barycentrycznych, które interpretujemy jako masy odważników, jest współrzędną wagową punktu. Jeśli suma

jednorod-Rysunek 4.6. Barycentryczne współrzędne jednorodne.

nych współrzędnych barycentrycznych jest równa 0, to określają one pewien kierunek wektorów swobodnych, czyli punkt niewłaściwy.

W dokumencie Grafika komputerowa I – MIM UW (Stron 40-45)