drawChart method

  1. @override
void drawChart(
  1. MACDEntity lastPoint,
  2. MACDEntity curPoint,
  3. double lastX,
  4. double curX,
  5. GetYFunction getY,
  6. Canvas canvas,
  7. KChartColors chartColors,
)
override

Implementation

@override
void drawChart(MACDEntity lastPoint, MACDEntity curPoint, double lastX,
    double curX, GetYFunction getY, Canvas canvas, KChartColors chartColors) {
  final prevMacd = lastPoint.macd;
  final macd = curPoint.macd;
  if (curPoint.macd != null) {
    final mMACDWidth = indicatorStyle.macdWidth;
    double r = mMACDWidth / 2;
    double zeroy = getY(0);
    double macdY = getY(macd!);
    _rectPaint.style = (prevMacd == null || prevMacd <= macd)
        ? PaintingStyle.stroke
        : PaintingStyle.fill;
    if (macd > 0) {
      canvas.drawRect(
        Rect.fromLTRB(curX - r, macdY, curX + r, zeroy),
        _rectPaint..color = indicatorStyle.upColor,
      );
    } else {
      canvas.drawRect(
        Rect.fromLTRB(curX - r, zeroy, curX + r, macdY),
        _rectPaint..color = indicatorStyle.dnColor,
      );
    }
  }
  if (lastPoint.dif != null && lastPoint.dif != 0 && curPoint.dif != null) {
    canvas.drawLine(
      Offset(curX, getY(curPoint.dif!)),
      Offset(lastX, getY(lastPoint.dif!)),
      _linePaint..color = indicatorStyle.difColor,
    );
  }
  if (lastPoint.dea != null && lastPoint.dea != 0 && curPoint.dea != null) {
    canvas.drawLine(
      Offset(curX, getY(curPoint.dea!)),
      Offset(lastX, getY(lastPoint.dea!)),
      _linePaint..color = indicatorStyle.deaColor,
    );
  }
}