Processing math: 100%

2011-07-18

Współrzędne barycentryczne

Ograniczymy się tylko do wersji 2D i skupimy się tylko na zastosowaniu w trójkącie.

  
    
      
    
  
  
  
    
      
        image/svg+xml
        
        
      
    
  
  
    
    P1
    P0
    P2
    v
    u
    
    
    
    P
    
  

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(P1P0)+v(P2P0)
P=P0+uP1uP0+vP2vP0
P=P0(1vu)+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 1uv.

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:

  
    
      
    
  
  
  
    
      
        image/svg+xml
        
        
      
    
  
  
    
    P1
    P0
    P2
    P
    
    
  
Współrzędne barycentryczne wyznaczamy z proporcji pól trójkątów:

u=(P,P0,P2)(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