drawCrossLine method
void
drawCrossLine({})
交叉线
Implementation
void drawCrossLine(
{required Canvas canvas,
required double canvasWidth,
required double canvasHeight,
required double scrollX,
required double scale,
required double dx,
required double dy,
required Color color,
required double strokeWidth}) {
double min = scrollX.abs() / scale;
double max = min + canvasWidth / scale;
if (dx < min) {
dx = min;
} else if (dx > max) {
dx = max;
}
canvas.save();
canvas.translate(scrollX, 0);
canvas.scale(scale, 1);
final paint = Paint()
..strokeWidth = strokeWidth
..style = PaintingStyle.fill
..color = color;
/// 绘制线
canvas.drawLine(Offset(0, dy),
Offset(canvasWidth / scale + (-scrollX / scale), dy), paint);
paint.strokeWidth /= scale;
canvas.drawLine(Offset(dx, 0), Offset(dx, canvasHeight), paint);
canvas.restore();
/// 绘制交叉圆点
canvas.save();
canvas.translate(scrollX, 0);
canvas.scale(scale);
canvas.drawCircle(Offset(dx, dy / scale), 2 / scale, paint);
canvas.restore();
}