다음을 통해 공유


선과 곡선의 앤티 앨리어싱

Windows GDI+를 사용하여 선을 그리는 경우 선의 시작점과 끝점을 제공하지만 줄의 개별 픽셀에 대한 정보를 제공할 필요는 없습니다. GDI+는 디스플레이 드라이버 소프트웨어와 함께 작동하여 특정 디스플레이 디바이스에 선을 표시하기 위해 켜질 픽셀을 결정합니다.

점(4, 2)에서 점(16, 10)으로 가는 직선 빨간색 선을 고려합니다. 좌표계의 원점이 왼쪽 위 모서리에 있고 측정 단위가 픽셀이라고 가정합니다. 또한 x축이 오른쪽을 가리키고 y축이 아래쪽을 가리킨다고 가정합니다. 다음 그림에서는 여러 가지 빛깔의 배경에 그려진 빨간색 선의 확대 보기를 보여 줍니다.

여러 가지 빛깔의 배경에서 단색 빨간색 픽셀을 보여 주는 그림

선을 렌더링하는 데 사용되는 빨간색 픽셀은 불투명합니다. 선 표시에는 부분적으로 투명한 픽셀이 없습니다. 이 유형의 선 렌더링은 선에 들쭉날쭉한 모양을 제공하고 선은 계단처럼 보입니다. 계단이 있는 선을 나타내는 이 기술을 앨리어싱이라고 합니다. 계단은 이론적 선의 앨리어스입니다.

선을 렌더링하기 위한 보다 정교한 기술에는 순수 빨간색 픽셀과 함께 부분적으로 투명한 픽셀을 사용하는 것이 포함됩니다. 픽셀은 선에 얼마나 가까운지에 따라 순수한 빨간색 또는 빨간색과 배경색의 일부 혼합으로 설정됩니다. 이러한 유형의 렌더링을 앤티앨리어싱이라고 하며 인간의 눈이 더 매끄럽게 인식하는 선이 됩니다. 다음 그림에서는 특정 픽셀을 배경과 혼합하여 앤티앨리어스된 선을 생성하는 방법을 보여 줍니다.

동일한 배경에서 빨간색 음영인 픽셀을 보여 주는 그림

앤티앨리어싱(스무딩)도 곡선에 적용할 수 있습니다. 다음 그림에서는 부드러운 타원의 확대 보기를 보여 줍니다.

흰색 배경에 파란색 픽셀의 다양한 음영으로 구성된 타원 그림

다음 그림에서는 실제 크기에서 동일한 타원을 보여 줍니다. 한 번은 앤티앨리어싱 없이, 한 번은 앤티앨리어싱을 사용합니다.

두 타원의 스크린샷: 앤티앨리어싱이 있는 타원은 눈에 띄게 매끄럽게 표시됩니다.

앤티앨리어싱을 사용하는 선과 곡선을 그리려면 Graphics 개체를 만들고 SmoothingModeAntiAliasGraphics::SetSmoothingMode 메서드에 전달합니다. 그런 다음 동일한 Graphics 개체의 그리기 메서드 중 하나를 호출합니다.

myGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
myGraphics.DrawLine(&myPen, 0, 0, 12, 8);

SmoothingModeAntiAliasSmoothingMode 열거형의 요소입니다.