절단 - 코핸서덜랜드 라인클리핑 알고리즘

(Cohen-Sutherland line clipping algorithm)

코핸 서덜랜드 라인 클리핑 알고리즘은 원래 화면영역을 가운데에 두고 각 화면을 벗어난 영역을 나누는 것에서 시작합니다.

각 영역을 위, 아래 ,오른쪽, 왼쪽에 해당하는 4비트 데이터로 나누어 어느 영역에서 어느영역에 걸치는 지에 대한 판별을 진행합니다.

이때 & (AND operation, 논리곱)을 사용하여 판별하게 되는데,

만약 각 성분 (위,아래,오른쪽,왼쪽)에 대하여 같은 위치에 있다면 1을, 아니라면 0의 값을 얻는 것을 통해 진행합니다.

이를 다시 정리하면 다음과 같은 케이스로 나눌 수 있습니다.

  1. Point A = Point B = 0000 (Point A | Point B = 0000) 이 경우, 완전히 두 점이 화면 내부에 있다고 판별합니다.
  2. Point A & Point B = 0000 양 점이 화면 외부에 있지만, 서로 같은 위치가 아닌 경우입니다. 추가적인 연산이 필요합니다.
  3. Point A & Point B ≠ 0000 이 경우는 두 점이 화면 외부에 있으므로 제거합니다.
  4. Point A ≠ 0000, Point B = 0000 한 점이 화면 내부에, 나머지 한 점이 화면 외부에 있을 경우입니다. 추가적인 연산이 필요합니다.

만약 이 때, Case 2, Case 4에 대해서는 교차점 계산을 진행하여 두 점을 얻은 후,