onCompute method
获取画布宽度和高度 计算当前屏内相对转换后的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;
}
}