アンチエイリアシング
アンチエイリアシング
行は表示の座標に位置する必要がある一連のピクセルで近似されています。したがって、それらはほぼ水平またはほぼ垂直にギザギザの、特に線を表示できます。このギザギザは、エイリアシングと呼ばれています。
アンチエイリアスは、直線や曲線の平滑化である。それは正確に水平または垂直ではない任意の行のギザギザ、階段状の外観を減らすことができます。emWinは、別のアンチエイリアシングの質、アンチエイリアスフォントや高解像度の座標をサポートしています。
アンチエイリアシングのサポートは、別々のソフトウェアの項目であるとemWin基本パッケージに含まれていません。
はじめ
アンチエイリアシングは、前景のそれと背景色を"ブレンド"で、曲線や斜め線を滑らかにします。背景色と前景色の間で使用される色合いの数が大きいほど、アンチエイリアシングの結果(長い計算時間)。
アンチエイリアシングの品質
アンチエイリアシングの品質は、この章の後半で説明したように、ルーチンGUI_AA_SetFactorによって設定されます。アンチエイリアシングの要因と対応する結果の関係の考え方については、図の画像を見てみましょう。最初の行は、アンチエイリアシング(因子1)なしで描画されます。2行目は因子2を使用してアンチエイリアス描画されます。これは、前景から背景までの階調数が2 × 2 = 4であることを意味します。次の行は3のアンチエイリアス要因で描かれ、その3 × 3 = 9の色合いがあり、と続きます。第4因子は、ほとんどのアプリケーションに十分なものでなければなりません。アンチエイリアシング係数を大きくすると、さらに劇的に結果が改善されますが、計算時間が増大していません。 |
アンチエイリアスフォント
アンチエイリアスフォント、低品質(2bpp)と高品質の2つのタイプ(4bpp)はサポートされています。それらを使用するときにこれらのフォントを表示するために必要なルーチンは自動的にリンクされています。次の表は、アンチエイリアスなしで文字"C"を描く上でとアンチエイリアスフォントの両方のタイプの効果を示しています。
フォントの種類 | 白地に黒 | 黒地に白 |
---|---|---|
標準 (アンチエイリアスなし) 1 BPP 2色 |
||
低品質 (アンチエイリアス) 2 BPP 4色 |
||
高品質な (アンチエイリアス) 4 BPP 16階調 |
アンチエイリアスフォントがemWinフォントコンバータを使用して作成することができます。アンチエイリアスフォントを使用しての一般的な目的は、テキストの外観を改善することです。高品質のアンチエイリアシングを使用しての効果がより視覚的に低品質、計算時間とメモリ消費量より快適になるでしょうが比例して増加します。低品質(2bpp)フォントはアンチエイリアス処理されない(1bpp)フォントの倍のメモリを必要とする、高品質の(4bpp)フォントは、4倍のメモリを必要とする。
高解像度の座標
アンチエイリアシングを使用して項目を描画するときに、同一の座標は、通常の(非アンチエイリアス)描画ルーチン用として使用されています。これがデフォルトのモードです。あなたは、関数の引数でアンチエイリアシングの要因を考慮する必要はありません。例えば、あなたが書くであろう(50、100)から(100、50)のアンチエイリアシング線を描画する:
GUI_AA_DrawLine(50、100、100、50);
emWinの高解像度の機能を使用すると、アンチエイリアシングの要因とお使いのディスプレイのサイズによって決定された仮想空間を使用することができます。高解像度の座標は、ルーチンGUI_AA_EnableHiResを有効にする必要があります、GUI_AA_DisableHiResで無効にすることもできます。両方の関数は、この章の後半で説明されています。高解像度を使用する利点は、座標は、それらの"間"の項目がないだけ、ディスプレイの物理的な位置に置くことができるということですが、高解像度のピクセルの仮想空間は、3のアンチエイリアス要因に基づいて以下に示します。
アンチエイリアシングファクタ3の高解像度モードでピクセルから(50、100)(100、50)へ線を描画するには、次のように記述します。
GUI_AA_DrawLine(150、300、300、150);
APIリファレンス:アンチエイリアシング
下の表は、それぞれのカテゴリ内のアルファベット順で、アンチエイリアシングのパッケージで利用可能なルーチンを示します。ルーチンの詳細な説明は次のセクションで見つけることができます。
ルーチン | 説明 |
---|---|
制御機能 | |
GUI_AA_DisableHiRes | 高resoluton座標を無効にします。 |
GUI_AA_EnableHiRes | 高解像度の座標を有効にします。 |
GUI_AA_GetFactor | 現在のアンチエイリアシングの係数を返します。 |
GUI_AA_SetFactor | 現在のアンチエイリアシングの係数を設定します。 |
描画関数 | |
GUI_AA_DrawArc | アンチエイリアス弧を描く。 |
GUI_AA_DrawLine | アンチエイリアス処理された線を引く。 |
GUI_AA_DrawPolyOutline | アンチエイリアス多角形の輪郭を描く。 |
GUI_AA_FillCircle | アンチエイリアス円を描きます。 |
GUI_AA_FillPolygon | 満たされたとアンチエイリアス多角形を描画します。 |