libpysal.cg.LineSegment¶
-
class
libpysal.cg.LineSegment(start_pt, end_pt)[source]¶ Geometric representation of line segment objects.
- Parameters
- start_pt
libpysal.cg.Point The point where the segment begins.
- end_pt
libpysal.cg.Point The point where the segment ends.
- start_pt
Examples
>>> ls = LineSegment(Point((1, 2)), Point((5, 6)))
- Attributes
p1libpysal.cg.PointHELPER METHOD. DO NOT CALL.
p2PointHELPER METHOD. DO NOT CALL.
bounding_boxlibpysal.cg.RectangleReturns the minimum bounding box of a
LineSegmentobject.lenpython:floatReturns the length of a
LineSegmentobject.linelibpysal.cg.LineReturns a
Lineobject of the line on which the segment lies.
-
__init__(self, start_pt, end_pt)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__(self, start_pt, end_pt)Initialize self.
get_swap(self)Returns a
LineSegmentobject which has its endpoints swapped.intersect(self, other)Test whether segment intersects with other segment (
True) or not (False).is_ccw(self, pt)Returns whether a point is counterclockwise of the segment (
True) or not (False).is_cw(self, pt)Returns whether a point is clockwise of the segment (
True) or not (False).sw_ccw(self, pt)Sedgewick test for
ptbeing ccw of segment.Attributes
Returns the minimum bounding box of a
LineSegmentobject.Returns the length of a
LineSegmentobject.Returns a
Lineobject of the line on which the segment lies.**HELPER METHOD.
**HELPER METHOD.
-
property
bounding_box¶ Returns the minimum bounding box of a
LineSegmentobject.- Returns
- self._bounding_box
libpysal.cg.Rectangle The bounding box of the line segment.
- self._bounding_box
Examples
>>> ls = LineSegment(Point((1, 2)), Point((5, 6))) >>> ls.bounding_box.left 1.0
>>> ls.bounding_box.lower 2.0
>>> ls.bounding_box.right 5.0
>>> ls.bounding_box.upper 6.0
-
get_swap(self)[source]¶ Returns a
LineSegmentobject which has its endpoints swapped.- Returns
- line_seg
libpysal.cg.LineSegment The
LineSegmentobject which has its endpoints swapped.
- line_seg
Examples
>>> ls = LineSegment(Point((1, 2)), Point((5, 6))) >>> swap = ls.get_swap() >>> swap.p1[0] 5.0
>>> swap.p1[1] 6.0
>>> swap.p2[0] 1.0
>>> swap.p2[1] 2.0
-
intersect(self, other) → bool[source]¶ Test whether segment intersects with other segment (
True) or not (False). Handles endpoints of segments being on other segment.- Parameters
- other
libpysal.cg.LineSegment Another line segment to check against.
- other
Examples
>>> ls = LineSegment(Point((5, 0)), Point((10, 0))) >>> ls1 = LineSegment(Point((5, 0)), Point((10, 1))) >>> ls.intersect(ls1) True
>>> ls2 = LineSegment(Point((5, 1)), Point((10, 1))) >>> ls.intersect(ls2) False
>>> ls2 = LineSegment(Point((7, -1)), Point((7, 2))) >>> ls.intersect(ls2) True
-
is_ccw(self, pt) → bool[source]¶ Returns whether a point is counterclockwise of the segment (
True) or not (False). Exclusive.- Parameters
- pt
libpysal.cg.Point A point lying ccw or cw of a segment.
- pt
Examples
>>> ls = LineSegment(Point((0, 0)), Point((5, 0))) >>> ls.is_ccw(Point((2, 2))) True
>>> ls.is_ccw(Point((2, -2))) False
-
is_cw(self, pt) → bool[source]¶ Returns whether a point is clockwise of the segment (
True) or not (False). Exclusive.- Parameters
- pt
libpysal.cg.Point A point lying ccw or cw of a segment.
- pt
Examples
>>> ls = LineSegment(Point((0, 0)), Point((5, 0))) >>> ls.is_cw(Point((2, 2))) False
>>> ls.is_cw(Point((2, -2))) True
-
property
len¶ Returns the length of a
LineSegmentobject.Examples
>>> ls = LineSegment(Point((2, 2)), Point((5, 2))) >>> ls.len 3.0
-
property
line¶ Returns a
Lineobject of the line on which the segment lies.- Returns
- self._line
libpysal.cg.Line The
Lineobject of the line on which the segment lies.
- self._line
Examples
>>> ls = LineSegment(Point((2, 2)), Point((3, 3))) >>> l = ls.line >>> l.m 1.0
>>> l.b 0.0
-
property
p1¶ HELPER METHOD. DO NOT CALL. Returns the
p1attribute of the line segment.- Returns
- self._p1
libpysal.cg.Point The
_p1attribute.
- self._p1
Examples
>>> ls = LineSegment(Point((1, 2)), Point((5, 6))) >>> r = ls._get_p1() >>> r == Point((1, 2)) True
-
property
p2¶ HELPER METHOD. DO NOT CALL. Returns the
p2attribute of the line segment.- Returns
- self._p2
libpysal.cg.Point The
_p2attribute.
- self._p2
Examples
>>> ls = LineSegment(Point((1, 2)), Point((5, 6))) >>> r = ls._get_p2() >>> r == Point((5, 6)) True
-
sw_ccw(self, pt)[source]¶ Sedgewick test for
ptbeing ccw of segment.- Returns
- is_ccwbool
1if turn fromself.p1toself.p2toptis ccw.-1if turn fromself.p1toself.p2toptis cw.-1if the points are collinear andself.p1is in the middle.1if the points are collinear andself.p2is in the middle.0if the points are collinear andptis in the middle.