Класс DisplacementMap
public class DisplacementMap
extends Effect FloatMap. Для каждого пикселя на выходе соответствующие данные из 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); Код выше генерирует следующее:
- Since:
- JavaFX 2.0
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
ObjectProperty<Effect> | input | Входные данные для этого Effect. |
ObjectProperty<FloatMap> | mapData | Данные карты для этого Effect. |
DoubleProperty | offsetX | Смещение, на которое сдвигаются все значения смещения координаты x в FloatMap после масштабирования. |
DoubleProperty | offsetY | Смещение, на которое сдвигаются все значения смещения координаты y в FloatMap после масштабирования. |
DoubleProperty | scaleX | Коэффициент масштабирования, на который умножаются все значения смещения координаты x в FloatMap. |
DoubleProperty | scaleY | Коэффициент масштабирования, на который умножаются все значения смещения координаты y в FloatMap. |
BooleanProperty | wrap | Определяет, будут ли значения, взятые извне границ карты, «заворачиваться» или нет. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DisplacementMap() | Создает новый экземпляр DisplacementMap с параметрами по умолчанию. |
DisplacementMap(FloatMap mapData) | Создает новый экземпляр DisplacementMap со заданными данными карты. |
DisplacementMap(FloatMap mapData,
double offsetX,
double offsetY,
double scaleX,
double scaleY) | Создает новый экземпляр DisplacementMap со заданными данными карты, смещениями offsetX, offsetY, масштабами scaleX и scaleY. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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() | Смещение, на которое сдвигаются все значения смещения координаты x в FloatMap после масштабирования. |
DoubleProperty | offsetYProperty() | Смещение, на которое сдвигаются все значения смещения координаты y в FloatMap после масштабирования. |
DoubleProperty | scaleXProperty() | Коэффициент масштабирования, на который умножаются все значения смещения координаты x в FloatMap. |
DoubleProperty | scaleYProperty() | Коэффициент масштабирования, на который умножаются все значения смещения координаты y в FloatMap. |
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() | Определяет, будут ли значения, взятые извне границ карты, «заворачиваться» или нет. |
Подробности свойств
input
public final ObjectProperty<Effect> inputProperty
Effect. Если задано значение null или оно не указано, в качестве входных данных будет использовано графическое изображение Node, к которому прикреплено Effect.- Значение по умолчанию:
- null
- См. также:
-
getInput(),setInput(Effect)
mapData
public final ObjectProperty<FloatMap> mapDataProperty
Effect.- Значение по умолчанию:
- пустая карта
- См. также:
-
getMapData(),setMapData(FloatMap)
scaleX
public final DoubleProperty scaleXProperty
FloatMap.
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
- Значение по умолчанию:
- 1.0
- См. также:
-
getScaleX(),setScaleX(double)
scaleY
public final DoubleProperty scaleYProperty
FloatMap.
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
- Значение по умолчанию:
- 1.0
- См. также:
-
getScaleY(),setScaleY(double)
offsetX
public final DoubleProperty offsetXProperty
FloatMap после масштабирования.
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
- Значение по умолчанию:
- 0.0
- См. также:
-
getOffsetX(),setOffsetX(double)
offsetY
public final DoubleProperty offsetYProperty
FloatMap после масштабирования.
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
public DisplacementMap(FloatMap mapData)
- Параметры:
-
mapData- данные карты для этого эффекта смещения карты - С:
- JavaFX 2.1
DisplacementMap
public DisplacementMap(FloatMap mapData, double offsetX, double offsetY, double scaleX, double scaleY)
- Параметры:
-
mapData- данные карты для этого эффекта смещения карты -
offsetX- смещение, на которое сдвигаются все значения смещения координат x вFloatMapпосле масштабирования -
offsetY- смещение, на которое сдвигаются все значения смещения координат y вFloatMapпосле масштабирования -
scaleX- коэффициент масштабирования, на который умножаются все значения смещения координат x вFloatMap -
scaleY- коэффициент масштабирования, на который умножаются все значения смещения координат y вFloatMap - С:
- JavaFX 2.1
Подробности методов
setInput
public final void setInput(Effect value)
- Описание свойства:
- Входные данные для этого
Effect. Если задано значениеnullили оно не указано, в качестве входных данных будет использовано графическое изображениеNode, к которому прикрепленоEffect. - Значение по умолчанию:
- null
getInput
public final Effect getInput()
- Описание свойства:
- Входные данные для этого
Effect. Если задано значениеnullили оно не указано, в качестве входных данных будет использовано графическое изображениеNode, к которому прикрепленоEffect. - Значение по умолчанию:
- null
inputProperty
public final ObjectProperty<Effect> inputProperty()
Effect. Если задано значение null или оно не указано, в качестве входных данных будет использовано графическое изображение Node, к которому прикреплено Effect.- Значение по умолчанию:
- null
- См. также:
-
getInput(),setInput(Effect)
setMapData
public final void setMapData(FloatMap value)
- Описание свойства:
- Данные карты для этого
Effect. - Значение по умолчанию:
- пустая карта
getMapData
public final FloatMap getMapData()
- Описание свойства:
- Данные карты для этого
Effect. - Значение по умолчанию:
- пустая карта
mapDataProperty
public final ObjectProperty<FloatMap> mapDataProperty()
Effect.- Значение по умолчанию:
- пустая карта
- См. также:
-
getMapData(),setMapData(FloatMap)
setScaleX
public final void setScaleX(double value)
- Описание свойства:
- Коэффициент масштабирования, на который умножаются все значения смещения координат x в
FloatMap.Min: n/a Max: n/a Default: 1.0 Identity: 1.0 - Значение по умолчанию:
- 1.0
getScaleX
public final double getScaleX()
- Описание свойства:
- Коэффициент масштабирования, на который умножаются все значения смещения координат x в
FloatMap.Min: n/a Max: n/a Default: 1.0 Identity: 1.0 - Значение по умолчанию:
- 1.0
scaleXProperty
public final DoubleProperty scaleXProperty()
FloatMap.
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
- Значение по умолчанию:
- 1.0
- См. также:
-
getScaleX(),setScaleX(double)
setScaleY
public final void setScaleY(double value)
- Описание свойства:
- Коэффициент масштабирования, на который умножаются все значения смещения координат y в
FloatMap.Min: n/a Max: n/a Default: 1.0 Identity: 1.0 - Значение по умолчанию:
- 1.0
getScaleY
public final double getScaleY()
- Описание свойства:
- Коэффициент масштабирования, на который умножаются все значения смещения координат y в
FloatMap.Min: n/a Max: n/a Default: 1.0 Identity: 1.0 - Значение по умолчанию:
- 1.0
scaleYProperty
public final DoubleProperty scaleYProperty()
FloatMap.
Min: n/a
Max: n/a
Default: 1.0
Identity: 1.0
- Значение по умолчанию:
- 1.0
- См. также:
-
getScaleY(),setScaleY(double)
setOffsetX
public final void setOffsetX(double value)
- Описание свойства:
- Смещение, на которое сдвигаются все значения смещения координат x в
FloatMapпосле масштабирования.Min: n/a Max: n/a Default: 0.0 Identity: 0.0 - Значение по умолчанию:
- 0.0
getOffsetX
public final double getOffsetX()
- Описание свойства:
- Смещение, на которое сдвигаются все значения смещения координат x в
FloatMapпосле масштабирования.Min: n/a Max: n/a Default: 0.0 Identity: 0.0 - Значение по умолчанию:
- 0.0
offsetXProperty
public final DoubleProperty offsetXProperty()
FloatMap после масштабирования.
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
- Значение по умолчанию:
- 0.0
- См. также:
-
getOffsetX(),setOffsetX(double)
смещениеY
public final void setOffsetY(double value)
- Описание свойства:
- Смещение, на которое смещаются все значения смещения координаты Y в
FloatMapпосле масштабирования.Min: n/a Max: n/a Default: 0.0 Identity: 0.0 - Значение по умолчанию:
- 0.0
получитьСмещениеY
public final double getOffsetY()
- Описание свойства:
- Смещение, на которое смещаются все значения смещения координаты Y в
FloatMapпосле масштабирования.Min: n/a Max: n/a Default: 0.0 Identity: 0.0 - Значение по умолчанию:
- 0.0
свойствоСмещениеY
public final DoubleProperty offsetYProperty()
FloatMap после масштабирования.
Min: n/a
Max: n/a
Default: 0.0
Identity: 0.0
- Значение по умолчанию:
- 0.0
- См. также:
-
getOffsetY(),setOffsetY(double)
установитьОбёртку
public final void setWrap(boolean value)
- Описание свойства:
- Определяет, будут ли значения, взятые за пределами границ карты, "заворачиваться" или нет.
Min: n/a Max: n/a Default: false Identity: n/a - Значение по умолчанию:
- false
являетсяОбёрткой
public final boolean isWrap()
- Описание свойства:
- Определяет, будут ли значения, взятые за пределами границ карты, "заворачиваться" или нет.
Min: n/a Max: n/a Default: false Identity: n/a - Значение по умолчанию:
- false
свойствоОбёртки
public final BooleanProperty wrapProperty()
Min: n/a
Max: n/a
Default: false
Identity: n/a
- Значение по умолчанию:
- false
- См. также:
-
isWrap(),setWrap(boolean)
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.