BREP 구조로 표현되는 3차원 표면을 3차원 삼각망으로 구현하기 위해 2차원 메쉬를 생성하는 프로그램을 구현하게 되었다.
여기서 고려대상은 콘 , 토러스 , 구이다.
3 차원 표면을 어떻게 2차원 메쉬로 구현이 가능한지 궁금할 것이다. 기본적인 생각은 이렇다.
일반적으로 3차원 보다는 2차원이 쉽다. 변수 하나가 적으니까 그만큼 고려해야 할 대상과 양이 줄어든다.
그래서 어떻게 해서던 3차원 표면을 2차원으로 표현 가능하게 만들어야 한다.
일반적으로 데카르트 좌표계에서는 3차원 표현을 3개의 매개 변수(x,y,z)로 나타낸다.
콘 ,토러스 , 구는 회전체이기 때문에 2개의 회전 각도로 표현이 가능해진다.
여기서 3개의 매개 변수가 2개의 매개 변수(u,v)로 줄어든다. 물론 이게 전부는 아니다.
3개의 매개 변수가 2개의 매개 변수로 줄어들 때 , 그리고 2개의 매개 변수에서 3개의 매개변수로 서로 변환이 될 때 1:1 대응이 되어야 한다.
이 조건을 만족하지 않는다면 3차원 회전체를 표현하기 위에 2차원 메쉬를 생성한다는 생각은 버려야 할 것이다.
다행히도 우리의 고려 대상인 3차원 회전체(콘 , 토러스 , 구)에서는 이와 같은 조건을 만족한다.
2차원 메쉬의 기본 요소
정점(Vertex)
에지(Edge)
삼각형(Delaunay Triangle)
여기서 고려대상은 콘 , 토러스 , 구이다.
3 차원 표면을 어떻게 2차원 메쉬로 구현이 가능한지 궁금할 것이다. 기본적인 생각은 이렇다.
일반적으로 3차원 보다는 2차원이 쉽다. 변수 하나가 적으니까 그만큼 고려해야 할 대상과 양이 줄어든다.
그래서 어떻게 해서던 3차원 표면을 2차원으로 표현 가능하게 만들어야 한다.
일반적으로 데카르트 좌표계에서는 3차원 표현을 3개의 매개 변수(x,y,z)로 나타낸다.
콘 ,토러스 , 구는 회전체이기 때문에 2개의 회전 각도로 표현이 가능해진다.
여기서 3개의 매개 변수가 2개의 매개 변수(u,v)로 줄어든다. 물론 이게 전부는 아니다.
3개의 매개 변수가 2개의 매개 변수로 줄어들 때 , 그리고 2개의 매개 변수에서 3개의 매개변수로 서로 변환이 될 때 1:1 대응이 되어야 한다.
이 조건을 만족하지 않는다면 3차원 회전체를 표현하기 위에 2차원 메쉬를 생성한다는 생각은 버려야 할 것이다.
다행히도 우리의 고려 대상인 3차원 회전체(콘 , 토러스 , 구)에서는 이와 같은 조건을 만족한다.
2차원 메쉬의 기본 요소
- Vertex 두개로 이루어 지고 LST(Left Side Triangle) , RST을 가르키는 두 개의 포인터를 가진다.
- 본래는 Delaunay Triangle이라고 썼는데 Delaunay Triangle을 만들기 위해서는 제약 조건이 따르므로
여기서는 그냥 Triangle을 만들기로 하자. - Triangle을 이루는 세 개의 Vertex를 가진다.(CCW 방향으로 저장된다.)
- Triangle을 이루는 세 개의 Edge를 가진다.
댓글
댓글 쓰기