Współrzędne jednorodne
Z Wikipedii
Współrzędne jednorodne to sposób reprezentacji punktów n-wymiarowych za pomocą n + 1 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 (x,y), we współrzędnych jednorodnych trójka (x,y,W); podobnie punkt trójwymiarowy we współrzędnych jednorodnych reprezentuje czwórka (x,y,z,W), 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 = 0, 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ę W = 1.
[edytuj] Zastosowania w grafice komputerowej
[edytuj] Przekształcenia macierzowe
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 A zawiera skumulowane informacje o obrocie, skalowaniu i pochyleniu, natomiast wektor T przesunięcie. Stosując współrzędne jednorodne można za pomocą macierzy 3x3 przedstawić wszystkie przekształcenia:
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ę: .
[edytuj] Obcinanie
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.