【发布时间】:2021-11-03 07:17:36
【问题描述】:
我尝试使用自定义油漆创建一个半圆形。问题是它总是从中心绘制。这会在底部区域创建一个我不想要的空间。怎么剪?
我已经检查过了,但这里没有回答这个问题: Flutter how to draw semicircle (half circle)
class myPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var centerX = size.width / 2;
var centerY = size.height / 2;
var center = Offset(centerX, centerY);
var radius = min(centerX, centerY);
canvas.drawArc(Rect.fromCircle(center: center, radius: radius -25),
doubleToAngle(-90), doubleToAngle(180), false, redCircle);
bool shouldRepaint(bmiPainter oldDelegate) {
//return true;
return oldDelegate._angle != _angle;
}
@override
double doubleToAngle(double angle) => angle * pi / 180.0;
}
我像这样嵌入自定义画家:
Flexible(
flex: 2,
fit: FlexFit.tight,
child: Container(
child: Transform.rotate(
angle: -pi / 2,
child: CustomPaint(
size: Size(300, 150),
key: backgroundKey,
painter: myPainter(),
child: Container(),
),
),
),
),
这与灵活无关。如果我拿一个容器把它变小,半圆也会变小。 我玩过 Size ,但它并没有改变任何东西。 Size 到底是什么
【问题讨论】: