1
0
Fork 0
freesewing/markdown/dev/reference/api/utils/beamintersectscurve/en.md
Wouter van Wageningen a5f141a586 Docs and code cleanup
2023-04-28 18:26:55 +00:00

1.3 KiB

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`.

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 for more information.

Signature

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 }

</Example>