colour.geometry.intersect_line_segments#
- colour.geometry.intersect_line_segments(l_1: ArrayLike, l_2: ArrayLike) LineSegmentsIntersections_Specification [source]#
Compute \(l_1\) line segments intersections with \(l_2\) line segments.
- Parameters:
l_1 (ArrayLike) – \(l_1\) line segments array, each row is a line segment such as (\(x_1\), \(y_1\), \(x_2\), \(y_2\)) where (\(x_1\), \(y_1\)) and (\(x_2\), \(y_2\)) are respectively the start and end points of \(l_1\) line segments.
l_2 (ArrayLike) – \(l_2\) line segments array, each row is a line segment such as (\(x_3\), \(y_3\), \(x_4\), \(y_4\)) where (\(x_3\), \(y_3\)) and (\(x_4\), \(y_4\)) are respectively the start and end points of \(l_2\) line segments.
- Returns:
Line segments intersections specification.
- Return type:
colour.algebra.LineSegmentsIntersections_Specification
References
Notes
Input line segments points coordinates are 2d coordinates.
Examples
>>> l_1 = np.array( ... [ ... [[0.15416284, 0.7400497], [0.26331502, 0.53373939]], ... [[0.01457496, 0.91874701], [0.90071485, 0.03342143]], ... ] ... ) >>> l_2 = np.array( ... [ ... [[0.95694934, 0.13720932], [0.28382835, 0.60608318]], ... [[0.94422514, 0.85273554], [0.00225923, 0.52122603]], ... [[0.55203763, 0.48537741], [0.76813415, 0.16071675]], ... ] ... ) >>> s = intersect_line_segments(l_1, l_2) >>> s.xy array([[[ nan, nan], [ 0.2279184..., 0.6006430...], [ nan, nan]], [[ 0.4281451..., 0.5055568...], [ 0.3056055..., 0.6279838...], [ 0.7578749..., 0.1761301...]]]) >>> s.intersect array([[False, True, False], [ True, True, True]], dtype=bool) >>> s.parallel array([[False, False, False], [False, False, False]], dtype=bool) >>> s.coincident array([[False, False, False], [False, False, False]], dtype=bool)