오다기리 박의 알고리즘 노트

삼각형 내부점의 무게중심 좌표(barycentric coordinate) 구하기 본문

컴퓨터 그래픽스/메쉬 기하학

삼각형 내부점의 무게중심 좌표(barycentric coordinate) 구하기

오다기리 박 2022. 1. 26. 16:56

다음 그림과 같이 3차원 공간의 삼각형 pqr내부에 점 a가 있을 때 이 점의 무게중심 좌표 (α, β, γ)를 구해보자. 삼각형 pqr a는 같은 평면 위에 존재한다고 가정한다. 이 말은 α, β, γ의 합이 1이라는 것을 뜻한다.

 

 

 

 

 a의 위치가 첫번째 정 p와 같다면 (α, β, γ) = (1, 0, 0),

 a의 위치가 두번째 정 q와 같다면 (α, β, γ) = (0, 1, 0),

 a의 위치가 세번째 정 r와 같다면 (α, β, γ) = (0, 0, 1) 이다.

 

 

그 외 일반적인 경우에는 우선 세번째 정 r을 기준으로 벡터를 만들어보자.

 

 

 

 

그러면 (α, β, γ) 에 대하여 다음 식이 성립한다.

 

 

 

 

그리고 다음과 같이 선형 시스템으로 다시 표현할 수 있다. 

 

 

 

 

그런데 이 식은 방정식이 3개인데 비해, 구해야할 미지수는 2개이다. 즉 방정식의 개수가 미지수 개수보다 많은 over-determined 형태이다. 이 방정식을 최소 자승해(Least square solution)로 풀기 위해 양변에 A의 전치행렬(Transpose)을 곱하여 정규 방정식(Normal equation)으로 변형한다.

 

 

 

 

정규 방정식은 방정식의 수와 미지수의 수가 같으며 ATA의 역행렬은 항상 존재한다. 식을 다음과 같이 다시 쓰고 (α, β, γ)를 구하면

 

 

 

이다.

 

 

추가로, 구해진 (α, β, γ)의 각 부호에 따라  a가 삼각형을 기준으로 위치하는 영역은 다음과 같다.