draw method
void
draw()
override
Implementation
@override
void draw(Canvas canvas, Size size, double scaleX, double scrollX,
double Function(double) getX, double Function(double) getY) {
if (startPoint == null || endPoint == null) return;
final paint = Paint()
..color = color
..strokeWidth = strokeWidth
..style = PaintingStyle.stroke;
// 绘制箭头主体
canvas.drawLine(startPoint!, endPoint!, paint);
// 计算箭头头部
final direction = (endPoint! - startPoint!).direction;
final arrowHead1 =
endPoint! + Offset.fromDirection(direction + 2.5, arrowHeadSize);
final arrowHead2 =
endPoint! + Offset.fromDirection(direction - 2.5, arrowHeadSize);
// 绘制箭头头部
canvas.drawLine(endPoint!, arrowHead1, paint);
canvas.drawLine(endPoint!, arrowHead2, paint);
}