Path.intersectsBeam()
The Path.intersectsBeam() method returns the Point object(s) where the path
intersects with an endless line (beam).
warning
This method 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 path.intersectsBeam(Point a, Point b)
- Preview
- Code
- X-Ray
({ Point, points, Path, paths, snippets, Snippet, getId, part }) => {
points.A = new Point(45, 60)
points.B = new Point(10, 30)
points.BCp2 = new Point(40, 20)
points.C = new Point(90, 30)
points.CCp1 = new Point(50, -30)
points.beamA = new Point(55, 30)
points.beamB = new Point(0, 55)
paths.demo1 = new Path().move(points.A).line(points.B).curve(points.BCp2, points.CCp1, points.C)
paths.beam = new Path().move(points.beamA).line(points.beamB).addClass('dashed')
for (let p of paths.demo1.intersectsBeam(points.beamA, points.beamB)) {
snippets[getId()] = new Snippet('notch', p)
}
return part
}
Example of the Path.intersectsBeam() method
Notes
This method works similar to path.intersectsX(...) and path.intersectsY(...),
but here the intersecting beam doesn't have to be horizontally or vertically.
If you need intersections with a limited line instead of a beam,
use something like path.intersects(new Path.move(pointA).line(pointB)) instead.