Współrzędne jednorodne
Współrzędne jednorodne to sposób reprezentacji punktów
-wymiarowych za pomocą
współrzędnych. 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. Ze względu na kilka zalet znalazły zastosowanie w grafice komputerowej.
Punkt w przestrzeni dwuwymiarowej (na płaszczyźnie) opisuje para liczb
, we współrzędnych jednorodnych trójka
; podobnie punkt trójwymiarowy we współrzędnych jednorodnych reprezentuje czwórka
, itd.
Jeśli współrzędna
, wówczas można podzielić przez nią pozostałe współrzędne, np.
. Liczby
,
(itd.) nazywane są współrzędnymi kartezjańskimi punktu jednorodnego.
Jeśli natomiast
, wówczas takie punkty nazywane są punktami w nieskończoności lub niewłaściwymi.
Dwa punkty jednorodne reprezentują ten sam punkt wtedy, gdy jeden jest wielokrotnością drugiego; istnieje nieskończenie wiele reprezentacji jednego punktu. W przestrzeni jednorodnej punkt reprezentuje prostą przechodzącą przez środek układu współrzędnych, natomiast punkt we współrzędnych kartezjańskich jest rzutem środkowym na płaszczyznę
.
Spis treści |
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.


