isPointOnPath function
Checks if the given point
lies on the specified path
.
Returns true if the point is on the path, otherwise returns false.
Implementation
bool isPointOnPath(Offset point, Path path, double pathWidth) {
PathMetric? pathMetric = path.computeMetrics().firstOrNull;
if (pathMetric == null) return false;
double totalLength = pathMetric.length;
double strokeWidth = pathWidth.clamp(4, 100);
for (double d = 0.0; d <= totalLength; d += 1) {
Tangent? tangent = pathMetric.getTangentForOffset(d);
if (tangent == null) continue;
// Check if the point is within stroke the width of the path
if ((tangent.position - point).distance <= strokeWidth) {
return true;
}
}
return false;
}