Files
docs-desktop/dotnet-desktop-guide/framework/winforms/advanced/antialiasing-with-lines-and-curves.md
T
Andy De George c0ba284473 Initial winforms content migrated (#18)
* Merge winforms framework content to working branch (#14)

* Breadcrumb / TOC / Move net5 to net folder (#15)

* change path from net5 to net

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Mess with bread/toc

* Add .net 5 winforms placeholder article (#16)

* added some metadata and adjusted net5 placeholder

* corrections

* corrections

* corrections

* Test1

* Swapping landing page vs concept

* fix links

* Fix links

* Fix desc
2020-09-01 16:26:21 -07:00

3.3 KiB

title, ms.date, dev_langs, helpviewer_keywords, ms.assetid
title ms.date dev_langs helpviewer_keywords ms.assetid
Antialiasing with Lines and Curves 03/30/2017
csharp
vb
antialiasing
antialiasing [Windows Forms], smoothing modes
GDI+, antialiasing
810da1a4-c136-4abf-88df-68e49efdd8d4

Antialiasing with Lines and Curves

When you use GDI+ to draw a line, you provide the starting point and ending point of the line, but you do not have to provide any information about the individual pixels on the line. GDI+ works in conjunction with the display driver software to determine which pixels will be turned on to show the line on a particular display device.

Aliasing

Consider the straight red line that goes from the point (4, 2) to the point (16, 10). Assume the coordinate system has its origin in the upper-left corner and that the unit of measure is the pixel. Also assume that the x-axis points to the right and the y-axis points down. The following illustration shows an enlarged view of the red line drawn on a multicolored background.

Line, no antialiasing

The red pixels used to render the line are opaque. There are no partially transparent pixels in the line. This type of line rendering gives the line a jagged appearance, and the line looks somewhat like a staircase. This technique of representing a line with a staircase is called aliasing; the staircase is an alias for the theoretical line.

Antialiasing

A more sophisticated technique for rendering a line involves using partially transparent pixels along with opaque pixels. Pixels are set to pure red, or to some blend of red and the background color, depending on how close they are to the line. This type of rendering is called antialiasing and results in a line that the human eye perceives as more smooth. The following illustration shows how certain pixels are blended with the background to produce an antialiased line.

Antialiasing a Line

Antialiasing, also called smoothing, can also be applied to curves. The following illustration shows an enlarged view of a smoothed ellipse.

Antialiasing Curves

The following illustration shows the same ellipse in its actual size, once without antialiasing and once with antialiasing.

Antialiasing example

To draw lines and curves that use antialiasing, create an instance of the xref:System.Drawing.Graphics class and set its xref:System.Drawing.Graphics.SmoothingMode%2A property to xref:System.Drawing.Drawing2D.SmoothingMode.AntiAlias or xref:System.Drawing.Drawing2D.SmoothingMode.HighQuality. Then call one of the drawing methods of that same xref:System.Drawing.Graphics class.

[!code-csharpLinesCurvesAndShapes#81] [!code-vbLinesCurvesAndShapes#81]

See also