delete data that is no longer displayed on the graph after exceeding y axis

This commit is contained in:
TAJAOUART Mounir 2023-02-10 10:14:01 +01:00
parent 2c21d3f994
commit 3ccb5a42d4

View File

@ -47,6 +47,8 @@ class RealTimeGraphState extends State<RealTimeGraph>
List<Point<double>> _data = []; List<Point<double>> _data = [];
Timer? timer; Timer? timer;
double canvasWidth = 1000;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -56,7 +58,8 @@ class RealTimeGraphState extends State<RealTimeGraph>
// Start a periodic timer to update the data for visualization // Start a periodic timer to update the data for visualization
timer = Timer.periodic(widget.updateDelay, (_) { timer = Timer.periodic(widget.updateDelay, (_) {
//_data.removeWhere((element) => element.y > 100); // delete data that is no longer displayed on the graph.
_data.removeWhere((element) => element.x < canvasWidth * -1.5);
// Clone the data to avoid modifying the original list while iterating // Clone the data to avoid modifying the original list while iterating
List<Point<double>> data = _data.map((e) => e).toList(); List<Point<double>> data = _data.map((e) => e).toList();
@ -113,6 +116,8 @@ class RealTimeGraphState extends State<RealTimeGraph>
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
canvasWidth = constraints.maxWidth;
return SizedBox( return SizedBox(
key: Key( key: Key(
'${constraints.maxWidth}${constraints.maxHeight}'), '${constraints.maxWidth}${constraints.maxHeight}'),