Flutter и 3D
Какво ще стане, ако искам да покажа нещо в 3D? Хммм…
Всичко в един ресурс на Flutter: https://flatteredwithflutter.com/flutter-and-3d/
Предпоставка…
Създаденото приложение е за Flutter Desktop… В случай, че не сте запознати с него, ние ви покриваме, следвайте статията тук
Започнете...
Тази статия се фокусира върху следните джаджи:
Трансформиране...
Според официалната документация на Flutter,
„Джаджа, която прилага трансформация, преди да нарисува детето си.“
Това е важна джаджа, ако се стремите към 3D трансформация...
Нашият код с помощта на Transform Widget,
Параметри за Transform Widget:
- подравняване: Подравняване на началото (Нашият случай FractionalOffset.centerLeft)
- трансформиране: Матрица за трансформиране...
- дете: Притурка, на която се извършва трансформация
Преобразуване на матрицата...
Transform взема 3D „матрица на трансформация“, която е „Matrix4“.
стъпки:
- Създайте матрицата:
Започнете с „матрица на идентичност“ и приложете трансформации към нея.
Matrix4.identity()
2. Задайте перспективата:
Според статия от Flutter
„Перспектива“ прави обектите, които са по-далеч, да изглеждат по-малки. Задаването на ред 3, колона 2 от матрицата на 0,001 намалява нещата въз основа на тяхното разстояние.
Сега знаем,
setEntry(3, 2, 0.0011)
3 означава ред 3, 2 означава колона 2
Числото 0,0011 : е числото на перспективата...Това число може да бъде постигнато само чрез игра...
За нашия случай 0,0011 (подходящо)...
3. Задайте въртене / Накланяне на оста….
..rotateX(_offset.dy) ..rotateY(_offset.dx),
rotateX и rotateY приемат ъгъл като параметри. За нашия случай сме дефинирали като отместване като:
Offset _offset = Offset(0.3, -0.9);
Отново, тези ценности бяха постигнати чрез игра около....
4. Посочете дете: RotationTransition в нашия случай
RotationTransition...
Според официалната документация на Flutter,
Анимира въртенето на джаджа.
Това е дъщерната джаджа за нашата 3D трансформация...
Параметри за RotationTransition Widget:
- завои: анимация (нашият контролер за анимация на случай)
- дете: Джаджа, на която се извършва завъртане...
Забележка: Тъй като вашите завои се нуждаят от контролер, следователно приспособлението трябва да бъде приспособление за състояние с контролер за анимация...
Изображението за слънчевата система се завърта с помощта на контролера за анимация, също така анимацията се поддържа в режим на повторение с продължителност от 50 секунди (за един цикъл на анимация)….
Как изглежда 3D ефекта:
Анимациите се забавят...
Това може да се постигне с помощта на (timeDilation)
timeDilation = 2.0; // Will slow down animations by a factor of two
Това свойство присъства вътре в пакета
import 'package:flutter/scheduler.dart';
Статии, свързани с Flutter Desktop:
Изходният код за урока тук…