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上の包含を測定するメソッドの座標は調整されません。 NodeにDisplacementMap効果が適用される場合、マウス選択の結果および包含メソッドは定義されません。
例:
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);
前述のコードにより、次の出力が生成されます。
| 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の新しいインスタンスを作成します。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
Effect |
getInput()
プロパティinputの値を取得します。
|
FloatMap |
getMapData()
プロパティmapDataの値を取得します。
|
double |
getOffsetX()
プロパティoffsetXの値を取得します。
|
double |
getOffsetY()
プロパティoffsetYの値を取得します。
|
double |
getScaleX()
プロパティscaleXの値を取得します。
|
double |
getScaleY()
プロパティscaleYの値を取得します。
|
ObjectProperty<Effect> |
inputProperty()
この
Effectの入力。 |
boolean |
isWrap()
プロパティwrapの値を取得します。
|
ObjectProperty<FloatMap> |
mapDataProperty()
この
Effectのマップ・データ。 |
DoubleProperty |
offsetXProperty()
FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。 |
DoubleProperty |
offsetYProperty()
FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。 |
DoubleProperty |
scaleXProperty()
FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。 |
DoubleProperty |
scaleYProperty()
FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。 |
void |
setInput(Effect value)
プロパティinputの値を設定します。
|
void |
setMapData(FloatMap value)
プロパティmapDataの値を設定します。
|
void |
setOffsetX(double value)
プロパティoffsetXの値を設定します。
|
void |
setOffsetY(double value)
プロパティoffsetYの値を設定します。
|
void |
setScaleX(double value)
プロパティscaleXの値を設定します。
|
void |
setScaleY(double value)
プロパティscaleYの値を設定します。
|
void |
setWrap(boolean value)
プロパティwrapの値を設定します。
|
BooleanProperty |
wrapProperty()
マップの端の外側から取られた値をラップ・アラウンドするかどうかを定義します。
|
public final ObjectProperty<Effect> inputProperty
Effectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。 getInput()、setInput(Effect)public final ObjectProperty<FloatMap> mapDataProperty
Effectのマップ・データ。getMapData()、setMapData(FloatMap)public final DoubleProperty scaleXProperty
FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
getScaleX()、setScaleX(double)public final DoubleProperty scaleYProperty
FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
getScaleY()、setScaleY(double)public final DoubleProperty offsetXProperty
FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
getOffsetX()、setOffsetX(double)public final DoubleProperty offsetYProperty
FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
getOffsetY()、setOffsetY(double)public final BooleanProperty wrapProperty
Min: n/a
Max: n/a
Default: false
Identity: n/a
isWrap()、setWrap(boolean)public DisplacementMap()
public DisplacementMap(FloatMap mapData)
mapData - この置換えマップ効果のマップ・データpublic DisplacementMap(FloatMap mapData, double offsetX, double offsetY, double scaleX, double scaleY)
mapData - この置換えマップ効果のマップ・データoffsetX - FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセットoffsetY - FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセットscaleX - FloatMapのすべてのX座標オフセット値が乗算されるスケール係数scaleY - FloatMapのすべてのY座標オフセット値が乗算されるスケール係数public final void setInput(Effect value)
Effectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。 public final Effect getInput()
Effectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。 public final ObjectProperty<Effect> inputProperty()
Effectの入力。 nullに設定した場合、または指定しない場合、EffectがアタッチされているNodeのグラフィカル・イメージが入力として使用されます。 getInput()、setInput(Effect)public final void setMapData(FloatMap value)
Effectのマップ・データ。public final FloatMap getMapData()
Effectのマップ・データ。public final ObjectProperty<FloatMap> mapDataProperty()
Effectのマップ・データ。getMapData()、setMapData(FloatMap)public final void setScaleX(double value)
FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
public final double getScaleX()
FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
public final DoubleProperty scaleXProperty()
FloatMapのすべてのX座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
getScaleX()、setScaleX(double)public final void setScaleY(double value)
FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
public final double getScaleY()
FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
public final DoubleProperty scaleYProperty()
FloatMapのすべてのY座標オフセット値が乗算されるスケール係数。
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
getScaleY()、setScaleY(double)public final void setOffsetX(double value)
FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
public final double getOffsetX()
FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
public final DoubleProperty offsetXProperty()
FloatMapのすべてのX座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
getOffsetX()、setOffsetX(double)public final void setOffsetY(double value)
FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
public final double getOffsetY()
FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
public final DoubleProperty offsetYProperty()
FloatMapのすべてのY座標オフセット値がスケーリングされた後に置き換えられるオフセット。
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
getOffsetY()、setOffsetY(double)public final void setWrap(boolean value)
Min: n/a
Max: n/a
Default: false
Identity: n/a
public final boolean isWrap()
Min: n/a
Max: n/a
Default: false
Identity: n/a
public final BooleanProperty wrapProperty()
Min: n/a
Max: n/a
Default: false
Identity: n/a
isWrap()、setWrap(boolean)Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.