drawAxisLine method
void
drawAxisLine(
- Canvas canvas,
- Paint paint
)
override
Implementation
@override
void drawAxisLine(Canvas canvas, Paint paint) {
List<num> viewPortList = viewRange; //distance
num first = viewPortList[0];
num end = viewPortList[1];
num allDistance = (scale.range[0] - scale.range[1]).abs();
num viewInterval = scale.viewInterval;
while (first < end) {
num pre = first;
num next = first + viewInterval;
first = next;
Offset startOffset, endOffset;
double percent = pre / allDistance;
startOffset = Offset(
props.start.dx + (props.end.dx - props.start.dx) * percent,
props.start.dy + (props.end.dy - props.start.dy) * percent,
);
startOffset = startOffset.translate(-scrollValue, -scrollValue);
percent = (next) / allDistance;
endOffset = Offset(
props.start.dx + (props.end.dx - props.start.dx) * percent,
props.start.dy + (props.end.dy - props.start.dy) * percent,
);
endOffset = endOffset.translate(-scrollValue, -scrollValue);
dynamic firstData = scale.domainValue(pre);
dynamic endData = scale.domainValue(next);
LineStyle? style;
if (axis.axisLine.styleFun != null) {
style = axis.axisLine.styleFun!.call(DynamicData(firstData), DynamicData(endData), null);
}
style ??= axis.axisLine.style;
style.drawPolygon(canvas, paint, [startOffset, endOffset]);
}
}