[英]How to made CustomPaint like this in flutter
我知道這不是最好的方法,但我真的不能這樣做。 如何制作這樣的東西。 我對幾何很爛。 我嘗試用cubicTo做到這一點,但我沒有得到這個效果:/。
有人能幫我嗎。 以下是我的代碼的一部分。
var sw = size.width;
var sh = size.height;
var path = Path();
path.cubicTo(sw/2, 0, sw/4, 0, 2*sw/4, 2*sh/4);
path.cubicTo(2*sw/3, 2*sh/3, sw/3, 0, sw, 0);
path.cubicTo(0, 0, 0, 0, sw, 0);
path.lineTo(sw, sh);
path.lineTo(0, sh);
path.close();
看一下這個...
class Paintter extends CustomPainter{
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()..color = Colors.orange;
var path = Path();
double factor = 100;
path.lineTo(0, size.height);
path.lineTo(size.width, size.height);
path.lineTo(size.width, 0);
path.lineTo(size.width - factor, 0);
path.quadraticBezierTo(size.width/2, size.height, factor, 0);
path.lineTo(0, 0);
canvas.drawPath(path, paint);
}
Path@arcToPoint可用於繪制圓/橢圓段。
例如,對於半徑等於矩形高度一半的圓:
final w = size.width;
final h = size.height;
final r = h / 2;
final path = Path();
path.moveTo(0, 0);
path.lineTo(w / 2 - r, 0);
path.arcToPoint(
Offset(w / 2 + r, 0),
radius: Radius.circular(r),
clockwise: false,
);
path.lineTo(w, 0);
path.lineTo(w, h);
path.lineTo(0, h);
path.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.