Spec-Zone.ru › OpenJavaFX 24

Класс Interpolator

java.lang.Object
fx.animation.Interpolator
public abstract class Interpolator extends Object
Абстрактный класс определяет несколько interpolate методов, которые используются для расчёта интерполированных значений. Предлагаются различные встроенные реализации этого класса. Приложения могут выбрать реализацию собственного Interpolator для получения пользовательского поведения интерполяции.

Пользовательский Interpolator должен быть определён в терминах " curve()".

С момента:
JavaFX 2.0

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  Interpolator.StepPosition
Указывает положение шага интерполятора.

Краткое описание полей

Модификатор и тип Поле Описание
static final Interpolator DISCRETE
Встроенный интерполятор, предоставляющий дискретную временную интерполяцию.
static final Interpolator EASE_BOTH
Встроенный экземпляр интерполятора, обеспечивающий плавное поведение входа/выхода.
static final Interpolator EASE_IN
Встроенный экземпляр интерполятора, обеспечивающий плавное поведение входа.
static final Interpolator EASE_OUT
Встроенный экземпляр интерполятора, обеспечивающий плавное поведение выхода.
static final Interpolator LINEAR
Встроенный интерполятор, обеспечивающий линейную временную интерполяцию.
static final Interpolator STEP_END
Встроенный экземпляр интерполятора, эквивалентный STEPS(1, StepPosition.END).
static final Interpolator STEP_START
Встроенный экземпляр интерполятора, эквивалентный STEPS(1, StepPosition.START).

Краткое описание конструкторов

Interpolator()
Модификатор Конструктор Описание
protected
Конструктор 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 STEPS(int intervalCount, Interpolator.StepPosition position)
Создаёт интерполятор шагом, который делит входное время на ряд интервалов, каждый интервал имеет одинаковую длину, где каждый интервал отображается на постоянное выходное значение времени.
static Interpolator TANGENT(Duration t, double v)
Создаёт интерполятор касательной, для которого касательная входа и касательная выхода идентичны.
static Interpolator TANGENT(Duration t1, double v1, Duration t2, double v2)
Создаёт интерполятор касательной.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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
Встроенный экземпляр интерполятора, обеспечивающий плавное ускорение/замедление.

Интерполятор ease-both обеспечивает анимацию, которая начинает движение медленно, затем ускоряется и снова замедляется к концу, плавно.

Реализация использует алгоритм плавного ускорения/замедления, определённый в SMIL 3.0, с коэффициентом ускорения и замедления 0.2 соответственно.

EASE_IN

public static final Interpolator EASE_IN
Встроенный экземпляр интерполятора, обеспечивающий плавное ускорение.

Интерполятор ease-in обеспечивает анимацию, которая начинает движение медленно, а затем плавно ускоряется.

Реализация использует алгоритм плавного ускорения, определённый в SMIL 3.0, с коэффициентом ускорения 0.2.

EASE_OUT

public static final Interpolator EASE_OUT
Встроенный экземпляр интерполятора, обеспечивающий плавное замедление.

Интерполятор ease-out обеспечивает анимацию, которая плавно замедляется к концу.

Реализация использует алгоритм плавного замедления, определённый в SMIL 3.0, с коэффициентом замедления 0.2.

STEP_START

public static final Interpolator STEP_START
Встроенный экземпляр интерполятора, эквивалентный STEPS(1, StepPosition.START).
Since:
23

STEP_END

public static final Interpolator STEP_END
Встроенный экземпляр интерполятора, эквивалентный STEPS(1, StepPosition.END).
Since:
23

Подробное описание конструкторов

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).
Parameters:
x1 - координата x первой контрольной точки
y1 - координата y первой контрольной точки
x2 - координата x второй контрольной точки
y2 - координата y второй контрольной точки
Returns:
Интерполятор сплайна

TANGENT

public static Interpolator TANGENT(Duration t1, double v1, Duration t2, double v2)
Создаёт интерполятор касательных. Интерполятор касательных позволяет очень точно определить поведение кривой анимации, задав касательные вблизи ключевой кадровой точки. Интерполятор касательных определяет поведение слева и справа от ключевой кадровой точки, поэтому он полезен только в рамках Timeline. Если используется в KeyFrame после KeyFrame, имеющего другой интерполятор, он обрабатывается так, как будто касательная справа от этой KeyFrame равна значению в KeyFrame.

A tangent interpolator
 defines the behavior to the left and to the right of a key frame,
 therefore it is only useful within a Timeline

Параметры определяют касательную кривой анимации для касательной слева (до ключевой кадровой точки) и касательной справа (после ключевой кадровой точки). Каждая касательная задаётся парой: расстояние до ключевой кадровой точки и значение касательной в этот момент.

Затем интерполяция следует кривой Безье с двумя контрольными точками, определёнными заданной касательной и расположенными на расстоянии 1/3 от длительности до второй KeyFrame или после первой KeyFrame. Смотрите изображение выше.

Parameters:
t1 - Время касательной слева, относительно ключевой кадровой точки
v1 - Значение касательной слева
t2 - Время касательной справа, относительно ключевой кадровой точки
v2 - Значение касательной справа
Returns:
новый интерполятор касательных

TANGENT

public static Interpolator TANGENT(Duration t, double v)
Создаёт интерполятор касательных, для которого касательная слева и справа совпадают. Это особенно полезно для первой и последней ключевой кадровой точки Timeline, поскольку для этих ключевых кадровых точек используется только одна касательная.
Parameters:
t - Время касательной
v - Значение касательной
Returns:
новый интерполятор касательных
See Also:
  • TANGENT(Duration, double, Duration, double)

STEPS

public static Interpolator STEPS(int intervalCount, Interpolator.StepPosition position)
Создаёт интерполятор ступенчатой формы, который делит входное время на ряд интервалов одинаковой длины, каждый интервал отображается в постоянное выходное значение времени. Значение выходного времени определяется Interpolator.StepPosition.
Parameters:
intervalCount - количество интервалов в интерполяторе ступенчатой формы
position - StepPosition интерполятора ступенчатой формы
Returns:
новый интерполятор ступенчатой формы
Throws:
IllegalArgumentException - если intervals меньше 1, или если intervals меньше 2, когда position является Interpolator.StepPosition.NONE
NullPointerException - если position равно null
Since:
23

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().

Parameters:
startValue - начальное значение
endValue - конечное значение
fraction - значение между 0.0 и 1.0
Returns:
интерполированное значение

interpolate

public boolean interpolate(boolean startValue, boolean endValue, double fraction)
Этот метод принимает два boolean значения, а также fraction между 0.0 и 1.0, и возвращает интерполированное значение.

Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().

Parameters:
startValue - первая точка данных
endValue - вторая точка данных
fraction - дробь в [0.0...1.0]
Returns:
интерполированное значение

interpolate

public double interpolate(double startValue, double endValue, double fraction)
Этот метод принимает два double значения, а также fraction между 0.0 и 1.0 и возвращает интерполированное значение.

Перед вычислением интерполированного значения дробь изменяется в соответствии с функцией, определённой в curve().

Parameters:
startValue - первая точка данных
endValue - вторая точка данных
fraction - дробь в [0.0...1.0]
Returns:
интерполированное значение

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)
Преобразование из [0.0..1.0] в себя.
Параметры:
t - время, но нормализованное к диапазону [0.0..1.0], где 0.0 - начало текущего интервала, а 1.0 - конец текущего интервала. Обычно функция, монотонно возрастающая.
Возвращает:
криволинейное значение

Отправить сообщение об ошибке или предложить улучшение
Авторские права © 2008, 2025, Oracle и/или его аффилированные лица. Все права защищены.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API