보기 및 클리핑

컴퓨터 그래픽에서 클리핑의 주된 용도는보기 창 밖에있는 개체, 선 또는 선 세그먼트를 제거하는 것입니다. 보기 변환은보기 볼륨 (특히 뷰어 뒤의 지점)과 관련된 지점의 위치에 민감하지 않으며보기를 생성하기 전에 이러한 지점을 제거해야합니다.

포인트 클리핑

주어진 창에서 점을 자르는 것은 매우 쉽습니다. 직사각형이 창을 나타내는 다음 그림을 고려하십시오. 포인트 클리핑은 주어진 포인트 (X, Y)가 주어진 윈도우 내에 있는지 여부를 알려줍니다. 창의 최소 및 최대 좌표를 사용할지 여부를 결정합니다.

X가 Wx1 ≤ X ≤ Wx2 사이에있는 경우 주어진 점의 X 좌표는 창 내부에 있습니다. 같은 방식으로 Y가 Wy1 ≤ Y ≤ Wy2 사이에 있으면 주어진 지점의 Y 좌표가 창 안에 있습니다.

라인 클리핑

라인 클리핑의 개념은 포인트 클리핑과 동일합니다. 선 자르기에서는 창 밖에있는 선 부분을 잘라 내고 창 안쪽에있는 부분 만 유지합니다.

Cohen-Sutherland 라인 클리핑

이 알고리즘은 다음 그림과 같이 클리핑 창을 사용합니다. 클리핑 영역의 최소 좌표는 $ (XW_ {min,} YW_ {min}) $이고 클리핑 영역의 최대 좌표는 $ (XW_ {max,} YW_ {max}) $입니다.

4 비트를 사용하여 전체 영역을 나눕니다. 이 4 비트는 다음 그림과 같이 영역의 상단, 하단, 오른쪽 및 왼쪽을 나타냅니다. 여기,TOPLEFT 비트는 1로 설정됩니다. TOP-LEFT 모서리.

라인에는 3 가지 가능성이 있습니다.

  • 선은 창 안에 완전히 들어갈 수 있습니다 (이 선은 허용되어야 함).

  • 선은 창 밖에있을 수 있습니다 (이 선은 영역에서 완전히 제거됩니다).

  • 선은 부분적으로 창 내부에있을 수 있습니다 (교차점을 찾고 영역 내부에있는 선 부분 만 그립니다).

연산

Step 1 − 각 엔드 포인트에 지역 코드를 할당합니다.

Step 2 − 두 끝점에 지역 코드가있는 경우 0000 그런 다음이 줄을 수락하십시오.

Step 3 − 그렇지 않으면 논리를 수행합니다. AND두 지역 코드에 대한 작업.

Step 3.1 − 결과가 아닌 경우 0000, 그런 다음 라인을 거부하십시오.

Step 3.2 − 그렇지 않으면 클리핑이 필요합니다.

Step 3.2.1 − 창 밖에있는 선의 끝점을 선택합니다.

Step 3.2.2 − 창 경계에서 교차점을 찾습니다 (지역 코드 기준).

Step 3.2.3 − 끝점을 교차점으로 교체하고 지역 코드를 업데이트하십시오.

Step 3.2.4 − 사소하게 승인되거나 거부 된 잘린 선을 찾을 때까지 2 단계를 반복합니다.

Step 4 − 다른 라인에 대해 1 단계를 반복합니다.

Cyrus-Beck 라인 클리핑 알고리즘

이 알고리즘은 Cohen-Sutherland 알고리즘보다 효율적입니다. 파라 메트릭 라인 표현과 단순한 내적을 사용합니다.

선의 파라 메트릭 방정식은-

P0P1:P(t) = P0 + t(P1 - P0)

N i를 바깥 쪽 법선 모서리 E i로 둡니다 . 이제 가장자리 E i 에서 임의의 점 P Ei 를 선택한 다음 내적 N i . [P (t) – P Ei ]는 점 P (t)가 클립 가장자리 "내부"인지 아니면 "외부"인지 결정합니다. 클립 가장자리 "위".

N i . [P (t) – P Ei ] <0이면 점 P (t)는 내부 입니다.

N i . [P (t) – P Ei ]> 0 인 경우 점 P (t)는 외부에 있습니다.

N i . [P (t) – P Ei ] = 0 (교차점) 인 경우 점 P (t)는 모서리에 있습니다.

N i . [P (t) – P Ei ] = 0

N i . [P 0 + t (P 1 -P 0 ) – P Ei ] = 0 (P (t)를 P 0 + t (P 1 -P 0 )로 대체 )

N i . [P 0 – P Ei ] + N i .t [P 1 -P 0 ] = 0

N i . [P 0 – P Ei ] + N i ∙ tD = 0 ([P 1 -P 0 ]을 D로 대체 )

N i . [P 0 – P Ei ] =-N i ∙ tD

t에 대한 방정식은 다음과 같습니다.

$$ t = \ tfrac {N_ {i}. [P_ {o}-P_ {Ei}]} {{-N_ {i} .D}} $$

다음 조건에서 유효합니다-

  • N i ≠ 0 (오류 발생 불가)
  • D ≠ 0 (P 1 ≠ P 0 )
  • N i ∙ D ≠ 0 (P 0 P 1 이 E i 와 평행하지 않음 )

다각형 클리핑 (Sutherland Hodgman 알고리즘)

클리핑 창을 지정하여 다각형을자를 수도 있습니다. Sutherland Hodgeman 다각형 클리핑 알고리즘은 다각형 클리핑에 사용됩니다. 이 알고리즘에서는 다각형의 모든 정점이 클리핑 창의 각 가장자리에 대해 잘립니다.

먼저 다각형의 새 정점을 얻기 위해 다각형 창의 왼쪽 가장자리에 대해 다각형이 잘립니다. 이 새 정점은 다음 그림과 같이 클리핑 창의 오른쪽 가장자리, 위쪽 가장자리, 아래쪽 가장자리에 대해 다각형을 자르는 데 사용됩니다.

클리핑 창으로 다각형의 가장자리를 처리하는 동안 가장자리가 완전히 클리핑 창 내부에 있지 않고 교차점에서 외부 가장자리까지의 부분 가장자리가 잘 리면 교차점이 발견됩니다. 다음 그림은 왼쪽, 오른쪽, 위쪽 및 아래쪽 가장자리 클리핑을 보여줍니다.

텍스트 클리핑

컴퓨터 그래픽에서 텍스트 클리핑을 제공하기 위해 다양한 기술이 사용됩니다. 문자를 생성하는 데 사용되는 방법과 특정 응용 프로그램의 요구 사항에 따라 다릅니다. 아래에 나열된 텍스트 클리핑에 대한 세 가지 방법이 있습니다.

  • 전체 또는 없음 문자열 클리핑
  • 전체 또는 없음 문자 클리핑
  • 텍스트 클리핑

다음 그림은 모든 문자열 클리핑을 보여줍니다.

전체 또는 없음 문자열 클리핑 방법에서 전체 문자열을 유지하거나 클리핑 창을 기반으로 전체 문자열을 거부합니다. 위의 그림에서 볼 수 있듯이 STRING2는 완전히 클리핑 창 안에 있으므로 유지하고 STRING1은 부분적으로 창 안에 만 있으면 거부합니다.

다음 그림은 모든 문자 클리핑을 보여줍니다.

이 클리핑 방법은 전체 문자열이 아닌 문자를 기반으로합니다. 이 메서드에서 문자열이 완전히 클리핑 창 안에 있으면 그대로 유지합니다. 부분적으로 창 밖에 있으면-

  • 외부에있는 문자열 부분 만 거부합니다.

  • 문자가 클리핑 창의 경계에 있으면 해당 문자 전체를 버리고 나머지 문자열을 유지합니다.

다음 그림은 텍스트 클리핑을 보여줍니다.

이 클리핑 방법은 전체 문자열이 아닌 문자를 기반으로합니다. 이 메서드에서 문자열이 완전히 클리핑 창 안에 있으면 그대로 유지합니다. 부분적으로 창 밖에 있으면

  • 외부에있는 문자열 부분 만 거부합니다.

  • 캐릭터가 클리핑 윈도우의 경계에 있으면 클리핑 윈도우 밖에있는 캐릭터 부분 만 버립니다.

비트 맵 그래픽

비트 맵은 이미지를 설명하는 픽셀 모음입니다. 컴퓨터가 사진을 저장하고 표시하는 데 사용하는 컴퓨터 그래픽 유형입니다. 이러한 유형의 그래픽에서 이미지는 비트별로 저장되므로 비트 맵 그래픽이라고합니다. 더 나은 이해를 위해 비트 맵 그래픽을 사용하여 웃는 얼굴을 그리는 다음 예제를 고려해 보겠습니다.

이제이 웃는 얼굴이 컴퓨터 그래픽에 어떻게 저장되는지 살펴 보겠습니다.

원래 웃는 얼굴을 면밀히 관찰하면 위 그림에서 B1, B2, E1, E2로 표시된 두 개의 파란색 선이 있음을 알 수 있습니다.

같은 방식으로 스마일리는 각각 A4, B5, C6, D6, E5 및 F4의 조합 비트를 사용하여 표현됩니다.

비트 맵 그래픽의 주요 단점은 다음과 같습니다.

  • 비트 맵 이미지의 크기를 조정할 수 없습니다. 크기를 조정하려고하면 픽셀이 흐려집니다.

  • 컬러 비트 맵은 매우 클 수 있습니다.