일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- denoising
- Mesh Processing
- 윈도우 구조
- modeling
- 윈도우프로그래밍
- Geometry Modeling
- shader
- OpenGL
- 컴퓨터 구조
- 오픈지엘
- Win32 API
- 그래픽스기초
- 윈도우
- MFC 윈도우 프로그래밍
- win32
- 핵심 API로 배우는 윈도우프로그래밍
- 그래픽스
- 컴퓨터 아키텍쳐
- Graphics
- 윈도우 프로그래밍
- 운영체제
- 셰이더
- c4d
- 렌더링
- 베지에 곡선
- window programming
- shader programming
- MFC
- 셰이더프로그래밍
- bezier curve
Archives
- Today
- Total
오다기리 박의 알고리즘 노트
직선과 삼각형의 교차점 구하기 본문
일반적으로 직선과 삼각형의 교차점을 구할 때 가장 먼저 직선과 삼각형이 포함된 평면과의 교차점을 먼저 계산한다.
그 다음에 교차점과 삼각형 정점들을 좌표 평면들(xy, yz, xz) 중 하나에 투영시킨다. 이 때 투영면은 삼각형의 면적을 최대화하도록 한다. 이렇게 2차원 문제로 축소시켜서 2차원 점이 2차원 삼각형 내부에 있는 판단하면 된다.
다음과 같이 3차원 공간에서 직선과 삼각형이 정의된다고 하자.
여기서 α, β는 α >= 0, β >= 0, α + β <= 1 를 만족하는 삼각형의 무게중심 좌표(barycentric coordinates) 이다.
직선과 삼각형의 교차점을 계산하기 위해 다음 방정식을 세운다.
즉, 선형 시스템을 풀어서 무게중심 좌표 α, β 와 직선의 파라미터 t 를 구할 수 있다.
그리고 크래머 공식에 의해 다음과 같이 구해진다.
det은 스칼라 삼중곱으로 계산하고, 외적에서 두 벡터의 순서가 바뀌면 -가 붙기 때문에 위 식을 다음과 같이 다시 쓸 수 있다.
[참고] Real-time rendering. Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman.
'컴퓨터 그래픽스 > 메쉬 기하학' 카테고리의 다른 글
네개의 3차원 벡터로 이루어진 행렬 (0) | 2022.01.26 |
---|---|
삼각형과 삼각형의 교차점 구하기 (0) | 2022.01.26 |
스칼라 삼중곱 (scalar triple product) (0) | 2022.01.25 |
행렬식(determinant)의 기하학적 의미 (0) | 2022.01.25 |
크래머 공식 (Cramer's rule) (0) | 2022.01.25 |