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.