ToneSnap_FSX_Flutter/lib/components/circular_notch_clipper.dart
fengshengxiong 422a3f8802 first commit
2024-06-11 11:53:38 +08:00

32 lines
801 B
Dart

// Author: fengshengxiong
// Date: 2024/5/29
// Description: 圆形缺口裁剪
import 'package:flutter/material.dart';
class CircularNotchClipper extends CustomClipper<Path> {
final double notchRadius;
CircularNotchClipper({required this.notchRadius});
@override
Path getClip(Size size) {
final Path path = Path()
..lineTo(size.width, 0)
..lineTo(size.width, size.height - notchRadius - 2.5)
..arcToPoint(
Offset(size.width - notchRadius - 2.5, size.height),
radius: Radius.circular(notchRadius - 2.5),
clockwise: false,
)
..lineTo(0, size.height)
..lineTo(0, 0)
..close();
return path;
}
@override
bool shouldReclip(CircularNotchClipper oldClipper) {
return oldClipper.notchRadius != notchRadius;
}
}