축퇴 다각형이란 무엇입니까? 주어진 다각형 쌍의 퇴행 여부를 어떻게 확인합니까?
축퇴 다각형이란 무엇입니까? 주어진 다각형 쌍의 퇴행 여부를 어떻게 확인합니까?
답변:
정점 중 일부가 서로 놓여 있으면 다각형이 퇴화 됩니다. 예를 들어 삼각형 (0,0), (0,1), (0,0)은 변성됩니다. 3 개의 변과 3 개의 정점이 있지만 두 개의 정점이 반복됩니다. 정점을 여러 번 반복 할 수 있습니다 (예 : (0,0), (0,0), (0,0)은 다른 축퇴 삼각형). 정의에 따라 다각형의 축퇴 여부를 쉽게 확인할 수 있습니다.
그러나 축퇴 다각형의 용도는 무엇입니까? 그래픽 가속 (3D 드로잉)의 한 가지 응용 프로그램은 다음과 같습니다.
3D 드로잉에서 GPU는 일반적으로 삼각 측량을 사용하여 이미지를 렌더링합니다. 삼각형을 사용하는 (간단한) 이유는 가능한 가장 간단한 2D 객체이기 때문에 많은 하드웨어가 필요하지 않기 때문입니다.
이 GPU 제한으로 복잡한 3D 이미지를 그리려면 여러 삼각형으로 분해해야합니다. 그러나 GPU를 호출하여 각 삼각형을 개별적으로 렌더링하면 호출 횟수 때문에 속도가 느려집니다. 따라서 삼각형 스트립은 GPU 호출 횟수를 줄이는 데 사용됩니다. 삼각형 스트립의 좋은 설명은에서 찾을 수 있습니다 마이크로 소프트 문서 : 삼각형 스트립 : 또한 당신이 위키 볼 수있는 삼각형 스트립 .
그러나 문제는 하나의 스트립에 두 개의 개별 객체를 그리려고 할 때 발생합니다. 이 경우 삼각형의 도움이됩니다. GPU는 축퇴 삼각형을 감지하고 해당 도면을 건너 뛸 수 있습니다. 따라서 하나의 축퇴 삼각형으로 두 개의 개별 스트립을 연결할 수 있습니다.
일반적으로 다른 구성 요소가 있고 해당 삼각형 스트립이 이미있는 경우 GPU를 한 번만 호출하여 구성 요소를 모두 그릴 수 있습니다. 이로 인해 추가 메모리 사용이 발생하지만 렌더링을위한 GPU 호출 횟수와 축약 된 추가 삼각형을 사용하는 오버 헤드 사이의 균형을 유지합니다.
다른 사람들이 지적했듯이, 그것은 달려 있습니다. 일반적으로 말하면, 변칙 점이없는 다각형은 변성되지 않지만 문제를 한 단계 뒤로 밀어냅니다. "비정상적인"이란 무엇입니까?
실제 대답은 다각형이 사양을 위반하면 축퇴한다는 것입니다. 약간 무례한 대답은 다각형이 알고리즘이 처리 할 수없는 가장자리 인 경우 다각형이 퇴화한다는 것입니다.
다음은 GIS 세계의 예입니다. OGC의 심플는 사양 특징 다각형 "유효"를 만드는 것을 매우 조심 정의를 가지고있다. 섹션 6.1.11.1에서 인용 :
다각형에 대한 어설 션 (유효한 다각형을 정의하는 규칙)은 다음과 같습니다.
a) 다각형은 위상 적으로 닫힌다.
b) 다각형의 경계는 외부 및 내부 경계를 구성하는 LinearRing 세트로 구성됩니다.
c) 경계 교차에있는 두 개의 고리와 다각형 경계에있는 고리는 한 지점에서 교차 할 수 있지만 접선으로 만 교차 할 수 없습니다.
;참고 :이 마지막 조건은 두 곡선에 공통 인 점에서 근처 점을 공통적으로 사용할 수 없음을 나타냅니다. 그러면 각 공통점이 접선 점이됩니다.
d) 다각형에는 절단 선, 스파이크 또는 구멍이 없어야합니다. 예 : ;
e) 모든 다각형의 내부는 연결된 점 세트입니다.
f) 하나 이상의 구멍이있는 다각형의 외부가 연결되어 있지 않습니다. 각 구멍은 외부의 연결된 구성 요소를 정의합니다.
위의 주장에서 내부, 폐쇄 및 외부에는 표준 토폴로지 정의가 있습니다. (a)와 (c)의 조합은 다각형을 규칙적인 닫힌 점 세트로 만듭니다.