次の方法で共有


直線と曲線のアンチエイリアシング

GDI+ を使用して直線を描画するときは、直線の開始点と終了点を指定しますが、直線の個々のピクセルに関する情報を指定する必要はありません。 GDI+ がディスプレイ ドライバー ソフトウェアと連携して、特定のディスプレイ デバイスで直線を表示するために、どのピクセルをオンにするかを決定します。

エイリアス化

ポイント (4, 2) からポイント (16, 10) への赤い直線について考えてみます。 座標系の原点は左上隅にあり、測定単位はピクセルであるとします。 また、X 軸が右向きで Y 軸が下向きとします。 次の図は、多色の背景上に描画された赤い直線の拡大表示です。

Line, no antialiasing

直線のレンダリングに使用される赤いピクセルは不透明です。 この直線には半透明のピクセルはありません。 このような種類の直線のレンダリングでは、直線がギザギザになり、階段状に見えます。 階段状に直線を表現するこの方法は、エイリアシングと呼ばれます。階段部分は理論上の直線に対するエイリアスです。

アンチエイリアシング

直線をレンダリングするためのより高度な手法では、半透明のピクセルが不透明のピクセルと一緒に使用されます。 ピクセルは、直線にどれくらい近いかに応じて、純粋な赤または赤と背景色のブレンドに設定されます。 この種類のレンダリングはアンチエイリアシングと呼ばれ、結果として表示される直線は人間の目には滑らかに見えます。 次の図は、アンチエイリアシングされた直線を生成するために、特定のピクセルと背景をブレンドする方法を示しています。

Antialiasing a Line

アンチエイリアシング (またはスムージング) は曲線に適用することもできます。 次の図は、スムージングされた楕円の拡大表示です。

Antialiasing Curves

次の図は、実際のサイズの同じ楕円を示しています。アンチエイリアシングを適用していないものと適用したものです。

Antialiasing example

アンチエイリアシングを使用する直線や曲線を描画するには、Graphics クラスのインスタンスを作成し、その SmoothingMode プロパティを AntiAlias または HighQuality に設定します。 次に、同じ Graphics クラスの描画メソッドの 1 つを呼び出します。

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

関連項目