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) {
debugPrint(
'HorizontalRayTool.draw: yPosition=$yPosition, centerX=$centerX, 状态=$state');
if (yPosition == null || centerX == null) return;
final paint = Paint()
..color = color.withOpacity(state == DrawingToolState.drawing ? 0.6 : 1.0)
..strokeWidth = strokeWidth
..style = PaintingStyle.stroke;
// 水平射线从右边界到中心点绘制
final startPoint = Offset(size.width, yPosition!);
final endPoint = Offset(centerX!, yPosition!);
debugPrint('绘制水平射线: 从右边 $startPoint 到中心点 $endPoint');
// 如果是预览状态,绘制虚线
if (state == DrawingToolState.drawing) {
_drawDashedLine(canvas, startPoint, endPoint, paint);
} else {
canvas.drawLine(startPoint, endPoint, paint);
}
// 在右侧绘制价格标签(显示实际的价格值)
if (state != DrawingToolState.drawing && priceValue != null) {
_drawPriceLabel(canvas, size, priceValue!);
}
}