попробуйте этот простой код для рисования (вы должны изменить его для работы с BorderPoint
- что бы это ни было):
var p = Paint()
..style = PaintingStyle.stroke
..color = Colors.deepPurple
..strokeWidth = 2;
var points = [
Offset(100, 100),
Offset(200, 150),
Offset(250, 300),
Offset(150, 350),
Offset(150, 250),
Offset(50, 200),
];
// you can remove "controlPaint" - it is for testing only
var controlPaint = Paint()..color = Color(0x880000ff);
var path = Path();
var mid = (points[0] + points[1]) / 2;
path.moveTo(mid.dx, mid.dy);
for (var i = 0; i < points.length; i++) {
var p1 = points[(i + 1) % points.length];
var p2 = points[(i + 2) % points.length];
mid = (p1 + p2) / 2;
path.quadraticBezierTo(p1.dx, p1.dy, mid.dx, mid.dy);
// draw control points and lines: switch it on by pressing 'p' key
// when executing "flutter run" command
// note it is for testing purposes only
if (debugPaintSizeEnabled)
canvas
..drawCircle(mid, 3, controlPaint)
..drawCircle(points[i], 5, controlPaint)
..drawLine(points[i], p1, controlPaint);
}
canvas.drawPath(path, p);