선과 곡선의 앤티 앨리어싱

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

별칭 지정

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

선, 앤티앨리어싱 없음

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

앤티앨리어싱

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

선 앤티앨리어싱

평활이라고도 하는 앤티앨리어싱은 곡선에도 적용할 수 있습니다. 다음 그림에서는 부드러운 타원의 확대 보기를 보여 줍니다.

곡선 앤티앨리어싱

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

앤티앨리어싱 예제

앤티앨리어싱을 사용하는 선과 곡선을 그리려면 Graphics 클래스의 인스턴스를 만들고 해당 SmoothingMode 속성을 AntiAlias 또는 HighQuality로 설정합니다. 그런 다음, 동일한 Graphics 클래스의 그리기 메서드 중 하나를 호출합니다.

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)

참고 항목