2D line
- class Line2(line)[source]
Class to represent 2D lines
The internal representation is in homogeneous format
\[ax + by + c = 0\]- classmethod General(m, c)[source]
Create line from general line
- Parameters:
m (float) – line gradient
c (float) – line intercept
- Returns:
a 2D line
- Return type:
a Line2 instance
Creates a line from the parameters of the general line \(y = mx + c\).
Note
A vertical line cannot be represented.
- classmethod Join(p1, p2)[source]
Create 2D line from two points
- Parameters:
p1 (array_like(2) or array_like(3)) – point on the line
p2 (array_like(2) or array_like(3)) – another point on the line
- Return type:
Self
The points can be given in Euclidean or homogeneous form.
- contains(p, tol=20)[source]
Test if point is in line
- Parameters:
p1 (array_like(2) or array_like(3)) – point to test
tol (float) – tolerance in units of eps, defaults to 20
- Returns:
True if point lies in the line
- Return type:
bool
- general()[source]
Parameters of general line
- Returns:
parameters of general line (m, c)
- Return type:
ndarray(2)
Return the parameters of a general line \(y = mx + c\).
- intersect(other, tol=20)[source]
Intersection with line
- Parameters:
other (Line2) – another 2D line
tol (float) – tolerance in units of eps, defaults to 20
- Returns:
intersection point in homogeneous form
- Return type:
ndarray(3)
If the lines are parallel then the third element of the returned homogeneous point will be zero (an ideal point).
- intersect_segment(p1, p2, tol=20)[source]
Test for line intersecting line segment
- Parameters:
p1 (array_like(2) or array_like(3)) – start of line segment
p2 (array_like(2) or array_like(3)) – end of line segment
tol (float) – tolerance in units of eps, defaults to 20
- Returns:
True if they intersect
- Return type:
bool
Tests whether the line intersects the line segment defined by endpoints
p1
andp2
which are given in Euclidean or homogeneous form.