onCompute method

void onCompute(
  1. Size size
)

获取画布宽度和高度 计算当前屏内相对转换后的X轴位置 根据X轴位置,计算屏内起始和结束展示数据的索引 计算最大值和最小值

Implementation

void onCompute(Size size) {
  canvasWidth = size.width;
  canvasHeight = size.height;

  /// 通过二分查找法找出当前屏幕内显示的数据索引
  double startX = dxToTransformX(0);
  double endX = dxToTransformX(canvasWidth);
  startIndex = transformXToIndex(startX);
  endIndex = transformXToIndex(endX);
  if (getValues().isNotEmpty) {
    if (startIndex == endIndex) {
      startIndex = 0;
      endIndex = getValues().length;
    }
    List<double> vals = getValues().sublist(startIndex, endIndex);
    minValue = vals.reduce(math.min);
    maxValue = vals.reduce(math.max);
  } else {
    minValue = 0;
    maxValue = 0;
  }
}