일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- bezier curve
- 핵심 API로 배우는 윈도우프로그래밍
- shader programming
- 윈도우 구조
- win32
- window programming
- 그래픽스기초
- Mesh Processing
- 운영체제
- shader
- 윈도우프로그래밍
- Graphics
- modeling
- MFC
- 베지에 곡선
- 윈도우
- OpenGL
- 그래픽스
- 셰이더프로그래밍
- c4d
- 렌더링
- Geometry Modeling
- MFC 윈도우 프로그래밍
- 셰이더
- 윈도우 프로그래밍
- 오픈지엘
- Win32 API
- 컴퓨터 구조
- 컴퓨터 아키텍쳐
- denoising
Archives
- Today
- Total
오다기리 박의 알고리즘 노트
삼각형 내부점의 무게중심 좌표(barycentric coordinate) 구하기 본문
다음 그림과 같이 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가 삼각형을 기준으로 위치하는 영역은 다음과 같다.
'컴퓨터 그래픽스 > 메쉬 기하학' 카테고리의 다른 글
평면과 박스의 교차 검사하기 (0) | 2022.01.27 |
---|---|
직선과 평면의 교차점 구하기 (0) | 2022.01.27 |
네개의 3차원 벡터로 이루어진 행렬 (0) | 2022.01.26 |
삼각형과 삼각형의 교차점 구하기 (0) | 2022.01.26 |
직선과 삼각형의 교차점 구하기 (0) | 2022.01.25 |