libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

グラフィックの特殊効果 (3/5)

作成:2015-04-11 10:43
更新:2015-04-11 10:43

■ブロワ(ぼかし)をかける

シェイプには、視覚効果のための機能も用意されています。視覚効果というとどういうものかわかりにくいですが、例えば「ぼかし」などがその代表例でしょう。

視覚効果は、シェイプ(Nodeのサブクラス)に用意されている「setEffect」というメソッドを使って設定します。これは以下のように実行します。
《Node》.setEffect(《Effect》);

引数には、視覚効果の内容を表す「Effect」というクラス(またはそのサブクラス)のインスタンスを指定します。視覚効果は多数のものが用意されており、それらはすべてEffectクラスのサブクラスとして用意されています。

ぼかし関係の視覚効果クラスとしては以下のようなものがあります。なおコンストラクタは、視覚効果を表現するのに必要な設定値を引数として持たせたものを紹介しておきます。

・ガウシアンブロワ
new GaussianBlur( 半径)

ガウシアンブロワは、ガウス曲線を利用してぼかしを適用するものです。広い範囲にぼかしをなめらかにかけるようなときに用いられます。引数にはぼかしの適用半径となる実数を指定します。

・モーションブロワ
new MotionBlur( 角度 , 半径 )
モーションブロワは、高速で動いているところを撮影したようなぼかしをかけるものです。引数にはぼかしの方向を示す角度とぼかしの強さを示す半径をそれぞれ実数で指定します。

・ボックスブロワ
new BoxBlur( 横幅 , 高さ , イテレーション )
ボックスブロワは、隣接ピクセルの平均値を元にぼかしをかけるものです。引数にはボックスの横幅と高さ、視覚効果の繰り返し数を指定します。前者2つはdouble値、繰り返し数はint値となります。

では、簡単な利用例を挙げておきましょう。下を実行すると、少しずつガウシアンブロワでぼかしを強めながら四角形を描いていきます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public void createShape(Pane root){
    for(int i = 0;i < 10;i++){
        Rectangle r = new Rectangle(20, 20, 50, 50);
        r.setTranslateX(25 * i);
        r.setTranslateY(15 * i);
        r.setFill(Color.BLUE);
        r.setStroke(Color.RED);
        r.setStrokeWidth(5);
        r.setEffect(new GaussianBlur(2.0 * i));
        root.getChildren().add(r);
    }
}

※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る