円弧

2023-06-18

drawArc

以前使った カスタムペインターdrawArcを使えば円弧も描画できます。

これは Flame ではなく Flutter(dart:ui)の機能ですが。

サンプルゲームの color_wheel でも活用しています。

APIリファレンス https://api.flutter.dev/flutter/dart-ui/Canvas/drawArc.html

描画する

基本はカスタムペインターと同じで、 paintの中でdrawArcを使います。

class MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    final strokePaint = Paint()
      ..color = Colors.white
      ..style = PaintingStyle.stroke
      ..strokeWidth = 2;

    canvas.drawArc(
      const Rect.fromLTWH(
        0,
        0,
        100,
        100,
      ),
      radians(0),
      radians(90),
      false,
      strokePaint,
    );

    canvas.drawArc(
      const Rect.fromLTWH(
        100,
        0,
        100,
        100,
      ),
      radians(0),
      radians(90),
      true,
      strokePaint,
    );
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) {
    return false;
  }
}

第 3 引数はsweepAngleで描画する角度(終了角度ではありません), 第 4 引数のuseCentertrueにするとパスが閉じて扇形になります。

これで円弧が描画できました。

© 2023 tnantoka