モジュール javafx.graphics
パッケージ javafx.scene.effect

クラスDisplacementMap



  • public class DisplacementMap
    extends Effect
    指定されたFloatMapの最初の2つのバンドで指定された距離だけ各ピクセルを移動する効果です。 出力のピクセルごとに、mapDataから対応するデータが取得され、scaleおよびoffset属性の値だけスケーリングおよびオフセットされ、ソース入力イメージのサイズだけ再びスケーリングされ、デスティネーション・ピクセルからのオフセットとして使用されてソース入力からピクセル・データを取得します。
         dst[x,y] = src[(x,y) + (offset+scale*map[x,y])*(srcw,srch)]
     
    値が(0.0, 0.0)の場合、ピクセル・データに対してオフセットは指定されず、値が(0.5, 0.5)の場合、ソース・イメージ・サイズの半分のオフセットが指定されます。

    マッピングは、デスティネーション・ピクセルから、サンプリングされるソース・ピクセル位置へのオフセットであり、すべて値0.5でマップを塗りつぶすと、イメージが左上に向かってそのサイズの半分が移動されます。これは、各デスティネーション・ピクセルに、その右下および右側にあるソース・ピクセルからのデータが含まれるためです。

    さらに、この効果では、入力イベントやNode上の包含を測定するメソッドの座標は調整されません。 NodeDisplacementMap効果が適用される場合、マウス選択の結果および包含メソッドは定義されません。

    例:

    
     int width = 220;
     int height = 100;
    
     FloatMap floatMap = new FloatMap();
     floatMap.setWidth(width);
     floatMap.setHeight(height);
    
     for (int i = 0; i < width; i++) {
         double v = (Math.sin(i / 20.0 * Math.PI) - 0.5) / 40.0;
         for (int j = 0; j < height; j++) {
             floatMap.setSamples(i, j, 0.0f, (float) v);
         }
     }
    
     DisplacementMap displacementMap = new DisplacementMap();
     displacementMap.setMapData(floatMap);
    
     Text text = new Text();
     text.setX(40.0);
     text.setY(80.0);
     text.setText("Wavy Text");
     text.setFill(Color.web("0x3b596d"));
     text.setFont(Font.font(null, FontWeight.BOLD, 50));
     text.setEffect(displacementMap);
    
     

    前述のコードにより、次の出力が生成されます。

    テキストに対するDisplacementMapの視覚効果

    導入されたバージョン:
    JavaFX 2.0
    • プロパティのサマリー

      プロパティ 
      Type プロパティ 説明
      ObjectProperty<Effect> input
      このEffectの入力。
      ObjectProperty<FloatMap> mapData
      このEffectのマップ・データ。
      DoubleProperty offsetX
      FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
      DoubleProperty offsetY
      FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
      DoubleProperty scaleX
      FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
      DoubleProperty scaleY
      FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
      BooleanProperty wrap
      マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      DisplacementMap​()
      デフォルトのパラメータでDisplacementMapの新しいインスタンスを作成します。
      DisplacementMap​(FloatMap mapData)
      指定されたmapDataを使用してDisplacementMapの新しいインスタンスを作成します。
      DisplacementMap​(FloatMap mapData, double offsetX, double offsetY, double scaleX, double scaleY)
      指定されたmapData、offsetX、offsetY、scaleXおよびscaleYを使用してDisplacementMapの新しいインスタンスを作成します。
    • プロパティの詳細

      • input

        public final ObjectProperty<Effect> inputProperty
        このEffectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。
        デフォルト値:
        null
        関連項目:
        getInput()setInput(Effect)
      • scaleX

        public final DoubleProperty scaleXProperty
        FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
        関連項目:
        getScaleX()setScaleX(double)
      • scaleY

        public final DoubleProperty scaleYProperty
        FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
        関連項目:
        getScaleY()setScaleY(double)
      • offsetX

        public final DoubleProperty offsetXProperty
        FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
        関連項目:
        getOffsetX()setOffsetX(double)
      • offsetY

        public final DoubleProperty offsetYProperty
        FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
        関連項目:
        getOffsetY()setOffsetY(double)
      • wrap

        public final BooleanProperty wrapProperty
        マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
               Min:  n/a
               Max:  n/a
           Default: false
          Identity:  n/a
         
        デフォルト値:
        false
        関連項目:
        isWrap()setWrap(boolean)
    • コンストラクタの詳細

      • DisplacementMap

        public DisplacementMap​()
        デフォルトのパラメータでDisplacementMapの新しいインスタンスを作成します。
      • DisplacementMap

        public DisplacementMap​(FloatMap mapData)
        指定されたmapDataを使用してDisplacementMapの新しいインスタンスを作成します。
        パラメータ:
        mapData - この置換えマップ効果のマップ・データ
        導入されたバージョン:
        JavaFX 2.1
      • DisplacementMap

        public DisplacementMap​(FloatMap mapData,
                               double offsetX,
                               double offsetY,
                               double scaleX,
                               double scaleY)
        指定されたmapData、offsetX、offsetY、scaleXおよびscaleYを使用してDisplacementMapの新しいインスタンスを作成します。
        パラメータ:
        mapData - この置換えマップ効果のマップ・データ
        offsetX - FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット
        offsetY - FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット
        scaleX - FloatMapのすべてのX座標オフセット値が乗算されるスケール係数
        scaleY - FloatMapのすべてのY座標オフセット値が乗算されるスケール係数
        導入されたバージョン:
        JavaFX 2.1
    • メソッドの詳細

      • setInput

        public final void setInput​(Effect value)
        プロパティinputの値を設定します。
        プロパティの説明:
        このEffectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。
        デフォルト値:
        null
      • getInput

        public final Effect getInput​()
        プロパティinputの値を取得します。
        プロパティの説明:
        このEffectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。
        デフォルト値:
        null
      • inputProperty

        public final ObjectProperty<Effect> inputProperty​()
        このEffectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。
        デフォルト値:
        null
        関連項目:
        getInput()setInput(Effect)
      • setMapData

        public final void setMapData​(FloatMap value)
        プロパティmapDataの値を設定します。
        プロパティの説明:
        このEffectのマップ・データ。
        デフォルト値:
        空のマップ
      • getMapData

        public final FloatMap getMapData​()
        プロパティmapDataの値を取得します。
        プロパティの説明:
        このEffectのマップ・データ。
        デフォルト値:
        空のマップ
      • setScaleX

        public final void setScaleX​(double value)
        プロパティscaleXの値を設定します。
        プロパティの説明:
        FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
      • getScaleX

        public final double getScaleX​()
        プロパティscaleXの値を取得します。
        プロパティの説明:
        FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
      • scaleXProperty

        public final DoubleProperty scaleXProperty​()
        FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
        関連項目:
        getScaleX()setScaleX(double)
      • setScaleY

        public final void setScaleY​(double value)
        プロパティscaleYの値を設定します。
        プロパティの説明:
        FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
      • getScaleY

        public final double getScaleY​()
        プロパティscaleYの値を取得します。
        プロパティの説明:
        FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
      • scaleYProperty

        public final DoubleProperty scaleYProperty​()
        FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
               Min: n/a
               Max: n/a
           Default: 1.0
          Identity: 1.0
         
        デフォルト値:
        1.0
        関連項目:
        getScaleY()setScaleY(double)
      • setOffsetX

        public final void setOffsetX​(double value)
        プロパティoffsetXの値を設定します。
        プロパティの説明:
        FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
      • getOffsetX

        public final double getOffsetX​()
        プロパティoffsetXの値を取得します。
        プロパティの説明:
        FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
      • offsetXProperty

        public final DoubleProperty offsetXProperty​()
        FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
        関連項目:
        getOffsetX()setOffsetX(double)
      • setOffsetY

        public final void setOffsetY​(double value)
        プロパティoffsetYの値を設定します。
        プロパティの説明:
        FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
      • getOffsetY

        public final double getOffsetY​()
        プロパティoffsetYの値を取得します。
        プロパティの説明:
        FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
      • offsetYProperty

        public final DoubleProperty offsetYProperty​()
        FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
               Min: n/a
               Max: n/a
           Default: 0.0
          Identity: 0.0
         
        デフォルト値:
        0.0
        関連項目:
        getOffsetY()setOffsetY(double)
      • setWrap

        public final void setWrap​(boolean value)
        プロパティwrapの値を設定します。
        プロパティの説明:
        マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
               Min:  n/a
               Max:  n/a
           Default: false
          Identity:  n/a
         
        デフォルト値:
        false
      • isWrap

        public final boolean isWrap​()
        プロパティwrapの値を取得します。
        プロパティの説明:
        マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
               Min:  n/a
               Max:  n/a
           Default: false
          Identity:  n/a
         
        デフォルト値:
        false
      • wrapProperty

        public final BooleanProperty wrapProperty​()
        マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
               Min:  n/a
               Max:  n/a
           Default: false
          Identity:  n/a
         
        デフォルト値:
        false
        関連項目:
        isWrap()setWrap(boolean)