--- title: utils.beamIntersectsCurve() --- The `utils.beamIntersectsCurve()` function finds the intersection between an endless line and a curve described by points `start`, `cp1`, `cp2`, and `end`. :::warning This function can sometimes fail to find intersections in some curves due to a limitation in an underlying Bézier library. Please see [Bug #3367](https://github.com/freesewing/freesewing/issues/3367) for more information. ::: ## Signature ```js array | false utils.beamIntersectsCurve( Point from, Point to, Point start, Point cp1, Point cp2, Point end ) ``` ## Example ```js ({ Point, points, Path, paths, Snippet, snippets, getId, utils, part }) => { points.A = new Point(10, 10) points.Acp = new Point(10, 40) points.B = new Point(110, 10) points.Bcp = new Point(110, 40) points.E = new Point(45, 25) points.D = new Point(65, 25) paths.curve = new Path() .move(points.A) .curve(points.Acp, points.Bcp, points.B) paths.line = new Path().move(points.E).line(points.D) for (let p of utils.beamIntersectsCurve( points.D, points.E, points.A, points.Acp, points.Bcp, points.B )) { snippets[getId()] = new Snippet("notch", p) } return part } ```