draw method

  1. @override
void draw(
  1. Canvas canvas,
  2. Size size,
  3. double scaleX,
  4. double scrollX,
  5. double getX(
    1. double
    ),
  6. double getY(
    1. double
    ),
)
override

Implementation

@override
void draw(Canvas canvas, Size size, double scaleX, double scrollX,
    double Function(double) getX, double Function(double) getY) {
  if (centerPoint == null) return;

  final paint = Paint()
    ..color = color.withOpacity(state == DrawingToolState.drawing ? 0.6 : 1.0)
    ..strokeWidth = strokeWidth
    ..style = PaintingStyle.stroke;

  // 如果是预览状态,绘制虚线效果
  if (state == DrawingToolState.drawing) {
    // 绘制虚线垂直线
    _drawDashedLine(canvas, Offset(centerPoint!.dx, 0),
        Offset(centerPoint!.dx, size.height), paint);

    // 绘制虚线水平线
    _drawDashedLine(canvas, Offset(0, centerPoint!.dy),
        Offset(size.width, centerPoint!.dy), paint);
  } else {
    // 绘制垂直线
    canvas.drawLine(
      Offset(centerPoint!.dx, 0),
      Offset(centerPoint!.dx, size.height),
      paint,
    );

    // 绘制水平线
    canvas.drawLine(
      Offset(0, centerPoint!.dy),
      Offset(size.width, centerPoint!.dy),
      paint,
    );
  }
}