buildMatrix4 method
lib/demo/shake/shake_animation_builder.dart 根据不同的模式来构建不同的矩阵变化
Implementation
Matrix4 buildMatrix4() {
if (shakeAnimationType == ShakeAnimationType.RoateShake) {
///在XOY平面绕Z轴的旋转
return Matrix4.rotationZ(animation.value);
} else if (shakeAnimationType == ShakeAnimationType.RandomShake) {
///随机使用旋转、上下平移、左右平移
return buildRandowMatrix4();
} else {
double dx = 0;
double dy = 0;
if (shakeAnimationType == ShakeAnimationType.LeftRightShake) {
///X轴方向的平移
dx = animation.value * 15;
} else if (shakeAnimationType == ShakeAnimationType.TopBottomShake) {
///Y轴方向平移
dy = animation.value * 15;
} else {
///对齐线方向平移
dx = animation.value * 15;
dy = animation.value * 15;
}
print("dx $dx dy $dy");
///在XOY平面的平移
return Matrix4.translationValues(dx, dy, 0);
}
}