0

Simple line drawaing クラスに Bresenham Algorithm を実装しましたが、その上にアンチエイリアシングを設定したいので、表示に JavaFX を使用します。

ライブラリを使用せずにアンチエイリアスを実装するにはどうすればよいですか?

4

1 に答える 1

1

アンチエイリアシングを行う 1 つの方法は、オーバーサンプリングを使用することです。画像はより高いソリューションでレンダリングされます。通常、効率と実装の容易さのために、生成された画像は 2 のべき乗で大きくなります。結果の画像はダウンサンプリングされます。

より効率的な方法 (一方でいくつかの欠点があります) は、Wu によるアルゴリズムです。このアプローチでは、ピクセルがサブピクセル精度を使用してプロットされる隣接ピクセルの所望のカラーリングを格納するルックアップ テーブルが使用されます。Bresenham のライン アルゴリズムは、このルックアップ テーブルを使用して、実際のサブピクセル精度でピクセルを配置します。

後者のアプローチは、ダウンサンプリングを必要とせず、メモリ アクセスが少なくなる可能性がありますが、最初のラインでプロットされたピクセルが 2 番目のラインで打ち消されるため、ラインが交差する場合にアトファクトが発生する可能性があります。この影響は、置換の代わりにピクセルの飽和加算を使用することで改善できます。

于 2015-09-11T13:16:32.440 に答える