updateTransform method

void updateTransform(
  1. double radians
)

Implementation

void updateTransform(double radians) {
  if (!alignmentBottom) {
    /// 围绕顶部旋转
    _rotateTransform = Matrix4.rotationX(radians);
  } else {
    /// 围绕底部旋转
    var _transform = Matrix4.rotationX(radians);
    final Alignment resolvedAlignment = AlignmentDirectional.bottomCenter.resolve(textDirection);
    final Matrix4 result = Matrix4.identity();
    Offset? translation;
    translation = resolvedAlignment.alongSize(_originalSize);
    result.translate(translation.dx, translation.dy);

    /// 先移动到底部
    result.multiply(_transform);

    /// 执行旋转
    result.translate(-translation.dx, -translation.dy);

    ///再移回去
    _rotateTransform = result;
  }
}