Współrzędne jednorodne

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Współrzędne jednorodne – sposób reprezentacji punktów n-wymiarowej przestrzeni rzutowej za pomocą układu współrzędnych. Pojęcie to opiera się na konstrukcji przestrzeni rzutowej, w której n-wymiarową przestrzeń euklidesową uzupełnia się o kierunki zwane punktami w nieskończoności lub punktami niewłaściwym.

Jeśli punkt właściwy ma współrzędne kartezjańskie , to jego współrzędne jednorodne mają postać . Np. punkt na płaszczyźnie o współrzędnych kartezjańskich ma zarazem współrzędne jednorodne postaci ; podobnie punkt w przestrzeni trójwymiarowej o współrzędnych kartezjańskich ma współrzędne jednorodne .

Odwrotnie – punkt właściwy o współrzędnych jednorodnych i ma współrzędne kartezjańskie postaci . Jeśli natomiast , to jest to punkt w nieskończoności i nie istnieją dla niego współrzędne kartezjańskie. Żaden punkt nie może mieć współrzędnych jednorodnych .

Dwa układy i są współrzędnymi jednorodnymi tego samego punktu, gdy jeden z tych układów jest wielokrotnością drugiego tj. dla pewnego . Inaczej mówiąc, każdy punkt (właściwy lub niewłaściwy) można reprezentować na nieskończenie wiele sposobów we współrzędnych jednorodnych i wszystkie te reprezentacje są do siebie proporcjonalne.

Współrzędne jednorodne zostały wprowadzone do geometrii w 1827 przez Augusta Möbiusa w pracy Der barycentrische Calcul. W 1946 E. Maxwell użył ich do rozwiązywania problemów związanych z rzutowaniem. Są narzędziem do stosowania metod analitycznych w przestrzeniach rzutowych. Ze względu na kilka zalet znalazły też zastosowanie w grafice komputerowej.

Zastosowania w grafice komputerowej[edytuj]

Przekształcenia macierzowe[edytuj]

W roku 1965 L. Roberts zauważył, że współrzędne jednorodne znakomicie nadają się do macierzowego opisu przekształceń w przestrzeniach n-wymiarowych.

Podstawowymi przekształceniami stosowanymi w grafice są: skalowanie, obrót, pochylenie i translacja. Zapis macierzowy wszystkich tych przekształceń przedstawia się następująco (przykład dla dwóch wymiarów):

gdzie macierz zawiera skumulowane informacje o obrocie, skalowaniu i pochyleniu, natomiast wektor przesunięcie. Stosując współrzędne jednorodne można za pomocą macierzy 3x3 przedstawić wszystkie przekształcenia:

Macierz będąca iloczynem dowolnej liczby macierzy reprezentujących różne przekształcenia zawiera złożenie tych przekształceń. Dzięki temu zamiast osobno wykonywać kolejne przekształcenia , można najpierw wykonać mnożenie odpowiednich macierzy , później zaś używać wynikowej macierzy . Czyli zamiast wykonywać mnożeń punktu przez macierze, to samo uzyskuje się jednym mnożeniem punktu przez macierz, dzięki uprzedniemu wykonaniu mnożeń macierzy.

Za pomocą macierzy przekształceń we współrzędnych jednorodnych można także zwięźle opisać rzut perspektywiczny:

Przy przejściu na współrzędne kartezjańskie otrzymuje się: .

Obcinanie[edytuj]

W grafice trójwymiarowej istotnym elementem wizualizacji jest obcinanie sceny trójwymiarowej do tzw. ostrosłupa widzenia. Jest to ostrosłup (dokładnie: ostrosłup ścięty), zdefiniowany przez wirtualną kamerę, w obrębie którego znajdują się obiekty widoczne w danym rzucie. Jednak obcinanie względem ostrosłupa widzenia jest dość skomplikowane obliczeniowo, dlatego można przekształcić ostrosłup widzenia w sześcian. Obcinanie względem sześcianu jest bardzo efektywne, jednak, aby po takim przekształceniu zapewnić poprawność wyników, obcinanie musi zostać wykonane we współrzędnych jednorodnych. Jest to powszechnie stosowane podejście w rozwiązaniach sprzętowych.

Także obcinanie wymiernych krzywych B-sklejanych we współrzędnych trójwymiarowych może nie dać prawidłowych wyników, natomiast obcinanie we współrzędnych jednorodnych gwarantuje poprawność wyniku.