2012-03-26 12 views
1

アンチエイリアス(スムーズ)な2次ベジェ曲線をラスタに描画するための適切なアルゴリズムを知っている人はいますか? 単純にベクトルとして描画してから、ラスターに画像をコピーすることができます。ラスタでアンチエイリアスベジェ曲線を描く方法は?

カーブをピクセルに直接描画するアルゴリズムはありますか? 私は現在、ここに実装されているアルゴリズムを使用しています: http://www.bytearray.org/?p=67 quadBezier() アンチエイリアスベジェをレンダリングする方法があるのでしょうか? ありがとうございます。

私はこれを学習目的でやっています。シェイプオプションのコピーピクセルを使用するよりも早くなると思っています。 はここでどれも滑らかなベジェを示す例は、通常のベジェよりも高速である: http://lab.generalrelativity.org/raster/

+0

は、後処理機能のアンチエイリアスではありませんか?どのような場合でも実装するのは簡単ではありません。実装するための一般的な検索では、何が関係しているのかを知る必要があります。 'draw()'を使用してください – divillysausages

答えて

4

は、独自のアルゴリズムを実装することはほぼ確実bitmapData.draw(shape)を使用するよりも遅くなります。

graphics.lineTo,graphics.curveToなどを使用すると、実際には何も描画していないモデルを作成しています。形状がステージに追加された後で、次の[render]フェーズでは、モデルが横断され、Cで書かれた高速アルゴリズムによってピクセルが描画されます。bitmapData.drawを使用してベクトルをビットマップに描画する場合、ネイティブコード。あなたが想像しているように、あなたが何かを二度描いているようなものではなく、AS3だけで何かをゼロから実装することでスピードを上げるのは難しい(または不可能)でしょう。

+1

私はいくつかのテストを(スピードのために)実行し、あなたの権利があることを知りました。また、ベジェを描くためのアルゴリズムがどのように動作するのかも分かりました。徹底的な説明をありがとう。 – zehelvion

関連する問題