drawSpecialPointHintLine static method

void drawSpecialPointHintLine(
  1. Canvas canvas,
  2. PointModel pointModel,
  3. double startX,
  4. double endX,
  5. double startY,
  6. double endY,
)

绘制某点处的辅助线,并特殊点高亮处理

Implementation

static void drawSpecialPointHintLine(Canvas canvas, PointModel pointModel,
    double startX, double endX, double startY, double endY) {
  if (pointModel.cellPointSet.hintEdgeInset != HintEdgeInset.none) {
    var hintEdgeInset = pointModel.cellPointSet.hintEdgeInset;
    if (hintEdgeInset.left != null) {
      drawline(
          canvas,
          pointModel.offset,
          Offset(startX, pointModel.offset.dy),
          hintEdgeInset.left!.isHintLineImaginary,
          hintEdgeInset.left!.hintColor,
          hintEdgeInset.left!.hintLineWidth);
    }
    if (hintEdgeInset.right != null) {
      drawline(
          canvas,
          pointModel.offset,
          Offset(endX, pointModel.offset.dy),
          hintEdgeInset.right!.isHintLineImaginary,
          hintEdgeInset.right!.hintColor,
          hintEdgeInset.right!.hintLineWidth);
    }
    if (hintEdgeInset.top != null) {
      drawline(
          canvas,
          pointModel.offset,
          Offset(pointModel.offset.dx, endY),
          hintEdgeInset.top!.isHintLineImaginary,
          hintEdgeInset.top!.hintColor,
          hintEdgeInset.top!.hintLineWidth);
    }
    if (hintEdgeInset.bottom != null) {
      drawline(
          canvas,
          pointModel.offset,
          Offset(pointModel.offset.dx, startY),
          hintEdgeInset.bottom!.isHintLineImaginary,
          hintEdgeInset.bottom!.hintColor,
          hintEdgeInset.bottom!.hintLineWidth);
    }
  }
  var centerPointOffset = pointModel.cellPointSet.centerPointOffset;
  if (centerPointOffset != Offset.zero) {
    drawline(
        canvas,
        pointModel.offset,
        Offset(pointModel.offset.dx + centerPointOffset.dx,
            pointModel.offset.dy + centerPointOffset.dy),
        true,
        pointModel.cellPointSet.centerPointOffsetLineColor,
        2);
  }
  drawSpecialPoint(canvas, pointModel, centerPointOffset);
}