Эти анимации мы собираем в параллельную анимацию.
Далее мы создаем анимацию по ключевым кадрам перемещения источника света и запускаем все наши анимации.
Пакет scene.transform платформы JavaFX обеспечивает трансформации узлов графа сцены, состоящие из аффинных преобразований: вращений, перемещений, масштабирования и сдвига.
Аффи́нное преобразование (соприкасающееся, близкое, смежное) – это отображение плоскости или пространства в себя, при котором параллельные прямые переходят в параллельные прямые, пересекающиеся – в пересекающиеся, скрещивающиеся – в скрещивающиеся.
В отличие от анимаций, трансформации графических объектов не имеют плавного видимого перехода от начальной точки к конечной точке в течение определенного промежутка времени, а выполняются сразу.
Базовым классом JavaFX-трансформаций является класс Transform, имеющий реализации в виде классов Affine, Rotate, Scale, Shear и Translate.
Применить JavaFX-трансформации к узлу графа сцены можно двумя способами.
Первый способ – это использовать метод getTransforms класса Node, возвращающий список ObservableList объектов Transform, заполнить который можно методом addAll.
Другой способ – это применение методов setRotate, setRotationAxis, setScale_, setTranslate_ класса Node, обеспечивающих трансформации вращения, масштабирования и перемещения для узла графа сцены.
Класс Affine представляет аффинные преобразования матрицы с помощью свойств – множители матрицы, и сдвиги по оси.
Аффинные преобразования отображают n-мерный объект в n-мерный, сохраняют параллельность линий и плоскостей и сохраняют пропорции параллельных объектов.
С помощью аффинных преобразований можно создавать трансформации вращения, перемещения, масштабирования и сдвига.
Класс Rotate обеспечивает вращение узла графа сцены с помощью свойств angle (угол вращения), pivotX (горизонтальная координата опорной точки вращения), pivotY (вертикальная координата опорной точки вращения), pivotZ (Z-координата опорной точки вращения).