Класс Interpolator
public abstract class Interpolator
extends Object interpolate методов, которые используются для расчета интерполированных значений. Предлагаются различные встроенные реализации этого класса. Приложения могут выбрать реализацию собственных Interpolator для получения пользовательского поведения интерполяции. Пользовательская Interpolator должна быть определена в терминах " curve()".
- Since:
- JavaFX 2.0
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static Interpolator | DISCRETE | Встроенный интерполятор, обеспечивающий дискретную временную интерполяцию. |
static Interpolator | EASE_BOTH | Встроенный экземпляр интерполятора, обеспечивающий плавное поведение "вход/выход". |
static Interpolator | EASE_IN | Встроенный экземпляр интерполятора, обеспечивающий плавное поведение "вход". |
static Interpolator | EASE_OUT | Встроенный экземпляр интерполятора, обеспечивающий плавное поведение "выход". |
static Interpolator | LINEAR | Встроенный интерполятор, обеспечивающий линейную временную интерполяцию. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | Interpolator() | Конструктор Interpolator. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected abstract double | curve(double t) | Сопоставление из [0.0..1.0] в себя. |
boolean | interpolate(boolean startValue,
boolean endValue,
double fraction) | Этот метод принимает два boolean значения вместе с fraction между 0.0 и 1.0 и возвращает интерполированное значение. |
double | interpolate(double startValue,
double endValue,
double fraction) | Этот метод принимает два double значения вместе с fraction между 0.0 и 1.0 и возвращает интерполированное значение. |
int | interpolate(int startValue,
int endValue,
double fraction) | Этот метод принимает два int значения вместе с fraction между 0.0 и 1.0 и возвращает интерполированное значение. |
long | interpolate(long startValue,
long endValue,
double fraction) | Этот метод принимает два int значения вместе с fraction между 0.0 и 1.0 и возвращает интерполированное значение. |
Object | interpolate(Object startValue,
Object endValue,
double fraction) | Этот метод принимает два Objects вместе с fraction между 0.0 и 1.0 и возвращает интерполированное значение. |
static Interpolator | SPLINE(double x1,
double y1,
double x2,
double y2) | Создает Interpolator, форма которого curve() задаётся контрольными точками сплайна, определёнными (x1, y1 ) и (x2, y2). |
static Interpolator | TANGENT(Duration t,
double v) | Создаёт интерполятор касательной, для которого касательные "вход" и "выход" идентичны. |
static Interpolator | TANGENT(Duration t1,
double v1,
Duration t2,
double v2) | Создаёт интерполятор касательной. |
Подробное описание полей
ДИСКРЕТНЫЙ
public static final Interpolator DISCRETE
interpolate(), равно endValue только в том случае, если входное значение fraction равно 1.0, и startValue в противном случае.ЛИНЕЙНЫЙ
public static final Interpolator LINEAR
interpolate() равно startValue + (endValue - startValue) * fraction.EASE_BOTH
public static final Interpolator EASE_BOTH
Интерполятор «плавное ускорение/замедление» обеспечит анимацию, начинающуюся медленно, затем ускоряющуюся и вновь замедляющуюся к концу, всё плавно.
Реализация использует алгоритм плавного ускорения/замедления, определённый в SMIL 3.0, с коэффициентом ускорения и замедления соответственно 0,2.
EASE_IN
public static final Interpolator EASE_IN
Интерполятор «плавное ускорение» обеспечит анимацию, начинающуюся медленно и затем плавно ускоряющуюся.
Реализация использует алгоритм плавного ускорения, определённый в SMIL 3.0, с коэффициентом ускорения 0,2.
EASE_OUT
public static final Interpolator EASE_OUT
Интерполятор «плавное замедление» обеспечит анимацию, замедляющуюся к концу плавно.
Реализация использует алгоритм плавного замедления, определённый в SMIL 3.0, с коэффициентом замедления 0,2.
Подробное описание конструкторов
Interpolator
protected Interpolator()
Interpolator.Подробное описание методов
SPLINE
public static Interpolator SPLINE(double x1, double y1, double x2, double y2)
Interpolator, форма которого задаётся точками управления сплайна, определёнными координатами (x1, y1 ) и (x2, y2). Точки привязки сплайна неявно заданы координатами (0.0, 0.0) и (1.0, 1.0).- Параметры:
-
x1- координата x первой точки управления -
y1- координата y первой точки управления -
x2- координата x второй точки управления -
y2- координата y второй точки управления - Возвращает:
- Интерполятор сплайна
TANGENT
public static Interpolator TANGENT(Duration t1, double v1, Duration t2, double v2)
Timeline. Если он используется в KeyFrame после ключевого кадра с другим интерполятором, он обрабатывается так, как если бы касательная справа от этого ключевого кадра была равна значению в ключевом кадре.
Параметры определяют касательную кривой анимации для касательной слева (до ключевого кадра) и касательной справа (после ключевого кадра). Каждая касательная задаётся парой: расстояние до ключевого кадра и значение касательной в этот момент.
Затем интерполяция следует кривой Безье, с 2 точками управления, определёнными указанной касательной и расположенными на 1/3 от длительности до следующего ключевого кадра или после первого ключевого кадра. Смотрите изображение выше.
- Параметры:
-
t1- временная разность касательной слева, относительно ключевого кадра -
v1- значение касательной слева -
t2- временная разность касательной справа, относительно ключевого кадра -
v2- значение касательной справа - Возвращает:
- новый интерполятор касательной
TANGENT
public static Interpolator TANGENT(Duration t, double v)
Timeline, так как для этих ключевых кадров используется только одна касательная.- Параметры:
-
t- временная разность касательной -
v- значение касательной - Возвращает:
- новый интерполятор касательной
- См. также:
TANGENT(Duration, double, Duration, double)
interpolate
public Object interpolate(Object startValue, Object endValue, double fraction)
Objects, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение. Если оба Objects реализуют Number, их значения интерполируются. Если startValue реализует Interpolatable, используется вычисление, определённое в interpolate(). Если ни одно из этих условий не выполняется, используется дискретная интерполяция, то есть endValue возвращается только в том случае, если fraction равно 1.0, в противном случае возвращается startValue.
Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().
- Параметры:
-
startValue- начальное значение -
endValue- конечное значение -
fraction- значение между 0.0 и 1.0 - Возвращает:
- интерполированное значение
interpolate
public boolean interpolate(boolean startValue, boolean endValue, double fraction)
boolean, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение. Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().
- Параметры:
-
startValue- первая точка данных -
endValue- вторая точка данных -
fraction- дробь в[0.0...1.0] - Возвращает:
- интерполированное значение
interpolate
public double interpolate(double startValue, double endValue, double fraction)
double, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение. Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().
- Параметры:
-
startValue- первая точка данных -
endValue- вторая точка данных -
fraction- дробь в[0.0...1.0] - Возвращает:
- интерполированное значение
interpolate
public int interpolate(int startValue, int endValue, double fraction)
int, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение. Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().
- Параметры:
-
startValue- первая точка данных -
endValue- вторая точка данных -
fraction- дробь в[0.0...1.0] - Возвращает:
- интерполированное значение
interpolate
public long interpolate(long startValue, long endValue, double fraction)
int, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение. Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().
- Параметры:
-
startValue- первая точка данных -
endValue- вторая точка данных -
fraction- дробь в[0.0...1.0] - Возвращает:
- интерполированное значение
curve
protected abstract double curve(double t)
- Параметры:
-
t- время, но нормализованное к диапазону [0.0..1.0], где 0.0 — начало текущего интервала, а 1.0 — конец текущего интервала. Обычно функция, монотонно возрастающая. - Возвращает:
- изменённое значение
© 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.