Класс Interpolator
- javafx.animation.Interpolator
public abstract class Interpolator extends Object
interpolate методов, которые используются для вычисления интерполированных значений. Предлагаются различные встроенные реализации этого класса. Приложения могут выбрать реализацию собственных Interpolator для получения пользовательского поведения интерполяции. Пользовательский Interpolator должен быть определен в терминах " curve()".
С тех пор:
JavaFX 2.0
-
Краткое описание полей
Поля Модификатор и тип Поле и описание static InterpolatorDISCRETEВстроенный интерполятор, который обеспечивает дискретную временную интерполяцию.static InterpolatorEASE_BOTHВстроенный экземпляр интерполятора, обеспечивающий плавное поведение "вход/выход".static InterpolatorEASE_INВстроенный экземпляр интерполятора, обеспечивающий плавное поведение "вход".static InterpolatorEASE_OUTВстроенный экземпляр интерполятора, обеспечивающий плавное поведение "выход".static InterpolatorLINEARВстроенный интерполятор, обеспечивающий линейную временную интерполяцию.
-
Краткое описание конструкторов
Конструкторы Модификатор Конструктор и описание protectedInterpolator()КонструкторInterpolator.
-
Краткое описание методов
Все методыСтатические методыМетоды экземпляраАбстрактные методыКонкретные методы Модификатор и тип Метод и описание protected abstract doublecurve(double t)Картирование из [0.0..1.0] в себя.booleaninterpolate(boolean startValue, boolean endValue, double fraction)Этот метод принимает дваbooleanзначения вместе сfractionмежду0.0и1.0и возвращает интерполированное значение.doubleinterpolate(double startValue, double endValue, double fraction)Этот метод принимает дваdoubleзначения вместе сfractionмежду0.0и1.0и возвращает интерполированное значение.intinterpolate(int startValue, int endValue, double fraction)Этот метод принимает дваintзначения вместе сfractionмежду0.0и1.0и возвращает интерполированное значение.longinterpolate(long startValue, long endValue, double fraction)Этот метод принимает дваintзначения вместе сfractionмежду0.0и1.0и возвращает интерполированное значение.Objectinterpolate(Object startValue, Object endValue, double fraction)Этот метод принимает дваObjectsзначения вместе сfractionмежду0.0и1.0и возвращает интерполированное значение.static InterpolatorSPLINE(double x1, double y1, double x2, double y2)СоздаётInterpolator, форма которогоcurve()формируется с помощью контрольных точек сплайна, определённых как (x1,y1) и (x2,y2).static InterpolatorTANGENT(Duration t, double v)Создаёт интерполятор касательной, для которого касательные входа и выхода идентичны.static InterpolatorTANGENT(Duration t1, double v1, Duration t2, double v2)Создаёт интерполятор касательной.
-
Подробное описание поля
-
DISCRETE
public static final Interpolator DISCRETE
Встроенный интерполятор, обеспечивающий дискретную временную интерполяцию. Значение, возвращаемоеinterpolate(), равноendValueтолько в том случае, если входное значениеfractionравно 1.0, иstartValueв противном случае.
-
LINEAR
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, кривая которогоcurve()формируется с помощью контрольных точек сплайна, заданных координатами (x1,y1) и (x2,y2). Точки якоря сплайна неявно определяются как (0.0,0.0) и (1.0,1.0).Параметры:
x1- координата x первой контрольной точкиВозвращает:
Интерполятор сплайна
-
TANGENT
public static Interpolator TANGENT(Duration t1, double v1, Duration t2, double v2)Создаёт интерполятор касательных. Интерполятор касательных позволяет очень точно определить поведение кривой анимации, определив касательные вблизи ключевой кадра. Интерполятор касательных определяет поведение слева и справа от ключевого кадра, поэтому он полезен только вTimeline. Если он используется вKeyFrameпосле ключевого кадра, у которого другой интерполятор, он обрабатывается так, как будто касательная справа от этого ключевого кадра равна значению в ключевом кадре.Параметры определяют касательную кривой анимации для касательной слева (до ключевого кадра) и касательной справа (после ключевого кадра). Каждая касательная задаётся парой: расстояние до ключевого кадра и значение касательной в этот момент.
Затем интерполяция следует кривой Безье, с 2 контрольными точками, определёнными заданной касательной и расположенными на расстоянии 1/3 длительности перед вторым ключевым кадром или после первого ключевого кадра. Смотрите рисунок выше.
Параметры:
t1- разница во времени касательной слева, относительно ключевого кадраВозвращает:
новый интерполятор касательных
-
TANGENT
public static Interpolator TANGENT(Duration t, double v)Создаёт интерполятор касательных, для которого касательные слева и справа идентичны. Это особенно полезно для первого и последнего ключевого кадраTimeline, потому что для этих ключевых кадров используется только одна касательная.Параметры:
t- разница во времени касательнойВозвращает:
новый интерполятор касательных
См. также:
-
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- начальное значениеВозвращает:
интерполированное значение
-
interpolate
public boolean interpolate(boolean startValue, boolean endValue, double fraction)Этот метод принимает два значенияbooleanвместе сfractionмежду0.0и1.0и возвращает интерполированное значение.Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в
curve().Параметры:
startValue- первая точка данных
-
interpolate
public double interpolate(double startValue, double endValue, double fraction)Этот метод принимает два значенияdoubleвместе сfractionмежду0.0и1.0и возвращает интерполированное значение.Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в
curve().Параметры:
startValue- первая точка данных
-
interpolate
public int interpolate(int startValue, int endValue, double fraction)Этот метод принимает два значенияintвместе сfractionмежду0.0и1.0и возвращает интерполированное значение.Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в
curve().Параметры:
startValue- первая точка данных
-
interpolate
public long interpolate(long startValue, long endValue, double fraction)Этот метод принимает два значенияintвместе сfractionмежду0.0и1.0и возвращает интерполированное значение.Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в
curve().Параметры:
startValue- первая точка данных
-
curve
protected abstract double curve(double t)
Сопоставление из [0.0..1.0] в себя.Параметры:
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.