Współrzędne barycentryczne to para (u,v). Można powiedzieć, że jest to punkt w układzie współrzędnych którego osie to boki trójkąta. Konwersja pomiędzy układem barycentrycznym, a ortogonalnym:
P=P0+→u+→v
P=P0+u(P1−P0)+v(P2−P0)
P=P0+uP1−uP0+vP2−vP0
P=P0(1−v−u)+P1u+P2v
Widzimy, że punkt P jest liniową kombinacją P0, P1 i P2. Tak naprawdę współrzędne barcentryczne to trójka liczb, przy czym ta trzecia to 1−u−v.P=P0+u(P1−P0)+v(P2−P0)
P=P0+uP1−uP0+vP2−vP0
P=P0(1−v−u)+P1u+P2v
Współrzędne barycentryczne wyznaczają punkt wewnątrz trójkąta jeśli 0<=u<=1 i 0<=v<=1 i 0<=v+u<=1. Konwersja z układu ortgonalnego na układ barycentryczny:
u=△(P,P0,P2)△(P0,P1,P2)
v=△(P,P0,P1)△(P0,P1,P2)
v=△(P,P0,P1)△(P0,P1,P2)
Pola trójkątów najlepiej policzyć z iloczynu wektorowego. Wzory te działają tylko dla punktu wewnątrz trójkąta.
Przeanalizujmy współrzędna u. Jeśli znajdzie się ona na boku trójkąta ¯P0P1 pole trójkąta △(P,P0,P2) jest równe zeru i tym samym współrzędna u. Wraz z przemieszaniem się punktu P w stronę punktu P1 pole trójkąta △(P,P0,P2) dąży do pola trójkąta △(P0,P1,P2), czyli współrzędna u dąży do jeden. Jeśli współrzędna wyjdzie poza trójkąt pole (powinno być, w naszym przypadku nie jest ujemne) lub większe od 1. To samo tyczy się pozostałych współrzędnych barycentrycznych.
Jeśli trójkąty △(P,P0,P2) lub △(P,P0,P1) będą mieć w sumie pole większe od pola trójkąta △(P0,P1,P2) to niewątpliwie punkt P musi być poza trójkątem. Czyli punkt jest w trójkącie jeśli 0<=v+u<=1. Ten warunek musi być spełniony dla dowolnej pary współrzędnych barycentrycznych.
Współrzędne barycentryczne mają zastosowanie podczas teksturowania. Dla punktu P wewnątrz trójkąta liczymy jego współrzędne barycentryczne. Dalej biorąc nową trójkę współrzędnych tekstury liczymy współrzędną tekstury z współrzędnych barycentrycznych.
Brak komentarzy:
Prześlij komentarz