buildMatrix4 method

Matrix4 buildMatrix4()

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);
  }
}