使用最新的Flutter ,我想用Canvas.drawArc的方法画一个从0到10的拱形.下面是我的代码:

@override
void paint(Canvas canvas, Size size) {
    final double radius = 1000.0;
    final Paint paint = new Paint()
      ..isAntiAlias = true
      ..strokeWidth = 1.0
      ..color = Colors.blue[500]
      ..style = PaintingStyle.stroke;
    canvas.drawArc(new Rect.fromLTWH(0.0, 0.0, size.width/2, size.height/2),
    10.0, 20.0, false, paint);
}

它是在CustomPainter内部绘制的,在布局中被称为:

children: <Widget>[
        new CustomPaint(
          painter: new CircleGraphWidget(),
          child: new Center(
            child: new Text(
              'Here\'s text',
              style: const TextStyle(
                fontSize: 40.0,
                fontWeight: FontWeight.w900,
                color: const Color(0xFFFFFFFFF),
              ),
            ),
          ),
        )
      ],

我希望draArc调用在圆上从10到20的矩形内绘制一条圆弧,但我得到的结果如下所示:

Screenshot of full oval not arc

我想知道怎么才能画出椭圆形的一小部分而不是整个东西.举个例子,如果我只想画四分之一的圆,我该怎么做呢?

推荐答案

https://docs.flutter.io/flutter/dart-ui/Canvas/drawArc.html

它从椭圆形周围的startAngel弧度开始,直到椭圆形周围的startAngel+SweepAngel弧度,弧度为零

它需要弧度而不是度:

canvas.drawArc(new Rect.fromLTWH(0.0, 0.0, size.width/2, size.height/2),
0.175, 0.349, false, paint);

Dart相关问答推荐

DART列表由以奇怪方式链接的列表(即二维数组)组成

Dart中使用set表达式的switch语句

如何在流侦听器中对异步函数调用进行单元测试

Dart 中的const关键字放置有什么不同?

dart 中的 Function() 和 Function 有什么区别?

浮动操作按钮:如何像 RaisedButton 一样更改启动 colored颜色 和突出显示 colored颜色 ?

寻找provider context 的flutter问题

Card宽度与父级匹配

在Flutter中使用底部导航栏在页面之间传递数据

需要一个SkDeletable类型的值,但得到一个Null类型的值

LinearProgressIndicator Flutter使用

设置Dart中非常量的默认值

将函数/方法分配给 Dart 中的变量

Dart 中 Promise.all 的类比?

如何在 Dart 中以正确的方式重定向和重新加载?

Dart,对泛型的限制?

如何在 Dart 中扁平化map列表?

将多张map合并/合并为一张map

如何在 Dart 中为 Completer.CompleteException(exception, stackTrace) 获取当前堆栈跟踪;

dart中是否可以有一个私有构造函数?