• Cohen-Sutherland Line Clipping Algorithm?

    이 알고리즘은 화면에 보이는 선이 화면 밖으로 나갔을 때 화면 밖의 선은 연산을 안하도록 막아줄 때
    사용하는 알고리즘으로 1967년에 개발이 되었다고 한다.

알고리즘은 다음 여부에 따라 행을 포함, 제외 또는 부분적으로 포함 된다.

 

  • 두 끝 점이 모두 화면 영역에 있을 때
  • 두 끝 점이 모두 보이지 않는 영역을 하나 이상 공유하므로 선이 보이는 영역을 넘어 가지 않는다.
  • 두 끝 점은 서로 다른 지역에 있고, 이런 상황의 경우 알고리즘은 화면 영역 외부에 있는 두 지점 중 하나를 찾는다.
    그런 다음 바깥 점과 확장 된 화면 경계의 교차가 계산되고 이 새로운 점이 바깥 점을 대체하게 된다.

 

아래 그림의 숫자를 "아웃 코드"라고 한다.

  Left Central Right
Top 1001 1000 1010
Central 0001 0000 0010
Bottom 0101 0100 0110

라인의 두 지점 각각에 대해 아웃 코드가 계산이 되고, 아웃 코드는 2차원 클리핑을 위해 4bit, 또는 3차원인 경우에
6 비트를 가질 것이다. 점이 화면 밖에 있으면 첫 번째 bit는 1로 설정이된다.
2D 출력 코드의 비트는 상단, 하단, 오른쪽, 왼쪽을 나타낸다. 예를 들어,
아웃 코드 (1010)는 화면의 우측 상단을 가리킨다.

 

클리핑이 발생한 후 각 반복에서 끝 점에 대한 아웃 코드를 다시 계산 해야 한다.

그리고 Cohen–Sutherland 알고리즘은 직사각형 "클립 창"에서만 사용할 수 있다고 한다.

 

 

 

+ Recent posts