2013-10-23 1 views
5

QGLWidget을 사용하여 3 차원 오브젝트를 그려 내 프로그램에 대한 입력은 도형의면입니다.QGLWidget - 3 차원 중공 오브젝트의 교차 부분

큐브를 그릴 때 각 요소가 얼굴을 나타내는 6 개의 요소 목록을 얻었고 각면에는 각 점에 대해 4 개의 점 (x, y, z)이 들어 있음을 의미합니다.

드로잉이 끝났지 만, 횡단면 기능을 구현하려고합니다. 횡단면 이후의 결과 모양이 빈 오브젝트입니다. 어떻게 횡단면 결과가 도형이 비어 있지 않은 것처럼 얻을 수 있습니까? ?

+1

그래서 개체의 일부분을 잘라 내고 내부에 void 채우기를 –

+0

@ratchet freak : 예. –

답변

9

OpenGL은 "개체"를 알지 못합니다. "단단한"또는 "빈"을 알지 못합니다. 모든 OpenGL 지식은 점, 선 및 삼각형입니다. 오브젝트를 단색으로 보이게하려면, 컷 어웨이 오브젝트의 지오메트리를 계산해야합니다. 그 결과 새로운 그리드가 만들어지고 그리기를위한 입력 데이터로 사용됩니다.

컷 어웨이 프로세스는 "부울 기하 연산"으로 알려진 작업 집합의 일부로 "건설적인 솔리드 기하"라고도합니다. Google을 사용하면 많은 정보를 얻을 수 있습니다.

2

저는 여러분이 달성하고자하는 것이 2 기하학 개체에 대해 boolean operation이라고 생각합니다. 이 목적을 위해 Boost에는 완벽한 지오메트리 라이브러리가 있으며이 알고리즘 중 하나가 필요합니다 : diff 또는 intersection. 예제를 통해 특정 개체 구조에 맞게 예제를 쉽게 수정할 수 있습니다.