2008-08-31

アンチエイリアスありの円

前々から欲しいと思っていたアンチエイリアシング付きの円(塗りつぶし円、および任意の太さの境界線)を描画する処理を書いた。実際には円というより、角丸矩形が描きたかったんですけどね。

本来なら、汎用的なベクトルパス、多角形描画処理を用意するべきなんだろうけど(libartみたいな)、以前試験的に書いたのをこのためだけに引っ張り出してくるのも気が引けるし、円に特化したものの方が速いのは確かだろうし。

結局地道に円の境界線とピクセル矩形の交差面積を計算することにした。中点円アルゴリズムと(境界部分だけの)オーバーサンプリングという手もあるだろうけど、なんか気が進まなかったので。

探せばいいアルゴリズムがあるんだろうけど、このあたりのことって検索しても見つかる気がしない。