Flutter 轨迹画线

///

/// 轨迹线类

///

class MoreLine CustomPainter {

final List?points;

final Color?color;

 final double?myW;

  final double?myH;

  MoreLine(this.myH, this.myW, this.points, {this.color});

  @override

  void paint(Canvas canvas, Size size) {

final Path path =Path();

    if (points?.length ==0) return;

    final paint =Paint()

..color =color ?? Colors.red

      ..style = PaintingStyle.stroke

      ..strokeWidth =1.5;

    bool first =true;

    for (Offset pointin points!) {

if (first) {

path.moveTo(point.dx *myW!, point.dy *myH!);

        first =false;

      }else {

path.lineTo(point.dx *myW!, point.dy *myH!);

      }

}

// 如果多边形是闭合的,添加close()调用

    path.close();

    canvas.drawPath(path, paint);

  }

@override

  boolshouldRepaint(covariant MoreLine oldDelegate) {

return color != oldDelegate.color;

  }

}


///轨迹线的调用

CustomPaint(

size: Size(wr, hr),

  painter: MoreLine(

 mark_hr,

    mark_wr,

    logic.pointsAlien,

    color: logic.isFrosted

? Colors.red?.withOpacity(0.3)

: Colors.red,

  ),

)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容