Closed
Description
Description:
Query.IsCollinear(List<Point>, double)
is currently a numerical check rather than geometrical - we create a matrix based on point coordinates and check whether it has enough zero rows. Transformation of geometrical tolerance to numerical is virtually impossible, therefore in edge cases points that should be considered collinear within tolerance, are returned as not, which starts becoming an issue in more complex workflows using this method.
This could be fixed by fitting an infinite line between points and then checking if they lie within tolerance from it.