ostk.mathematics.geometry.d3.object.Segment¶
- class Segment(
- self: ostk.mathematics.geometry.d3.object.Segment,
- first_point: ostk.mathematics.geometry.d3.object.Point,
- second_point: ostk.mathematics.geometry.d3.object.Point,
- first_point: ostk.mathematics.geometry.d3.object.Point,
Bases:
ObjectCreate a 3D segment between two points.
- Parameters:
Example
>>> point1 = Point(0.0, 0.0, 0.0) >>> point2 = Point(1.0, 1.0, 1.0) >>> segment = Segment(point1, point2)
Methods
Apply a transformation to the segment in place.
Convert the object to a cone.
Convert the object to an ellipsoid.
Convert the object to a line.
Convert the object to a line string.
Convert the object to a plane.
Convert the object to a point.
Convert the object to a point set.
Convert the object to a polygon.
Convert the object to a pyramid.
Convert the object to a ray.
Convert the object to a segment.
Convert the object to a sphere.
Check if the segment contains a point.
Overloaded function.
Get the center point of the segment.
Get the direction vector of the segment.
Get the first endpoint of the segment.
Get the length of the segment.
Get the second endpoint of the segment.
Calculate the intersection of the segment with a plane.
Overloaded function.
Check if the object is a cone.
Check if the segment is defined.
Check if the segment is degenerate (both endpoints are the same).
Check if the object is an ellipsoid.
Check if the object is a line.
Check if the object is a line string.
Check if the object is a plane.
Check if the object is a point.
Check if the object is a point set.
Check if the object is a polygon.
Check if the object is a pyramid.
Check if the object is a ray.
Check if the object is a segment.
Check if the object is a sphere.
Convert the segment to a line.
Create an undefined segment.
- apply_transformation(
- self: ostk.mathematics.geometry.d3.object.Segment,
- transformation: ostk::mathematics::geometry::d3::Transformation,
Apply a transformation to the segment in place.
- Parameters:
transformation (Transformation) -- The transformation to apply.
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(1.0, 1.0, 1.0)) >>> transformation = Translation([1.0, 1.0, 1.0]) >>> segment.apply_transformation(transformation)
- as_cone( ) ostk::mathematics::geometry::d3::object::Cone¶
Convert the object to a cone.
- Returns:
The cone.
- Return type:
- as_ellipsoid( ) ostk::mathematics::geometry::d3::object::Ellipsoid¶
Convert the object to an ellipsoid.
- Returns:
The ellipsoid.
- Return type:
- as_line( ) ostk::mathematics::geometry::d3::object::Line¶
Convert the object to a line.
- Returns:
The line.
- Return type:
- as_line_string( ) ostk::mathematics::geometry::d3::object::LineString¶
Convert the object to a line string.
- Returns:
The line string.
- Return type:
- as_plane( ) ostk::mathematics::geometry::d3::object::Plane¶
Convert the object to a plane.
- Returns:
The plane.
- Return type:
- as_point( ) ostk::mathematics::geometry::d3::object::Point¶
Convert the object to a point.
- Returns:
The point.
- Return type:
- as_point_set( ) ostk::mathematics::geometry::d3::object::PointSet¶
Convert the object to a point set.
- Returns:
The point set.
- Return type:
- as_polygon( ) ostk::mathematics::geometry::d3::object::Polygon¶
Convert the object to a polygon.
- Returns:
The polygon.
- Return type:
- as_pyramid( ) ostk::mathematics::geometry::d3::object::Pyramid¶
Convert the object to a pyramid.
- Returns:
The pyramid.
- Return type:
- as_ray( ) ostk::mathematics::geometry::d3::object::Ray¶
Convert the object to a ray.
- Returns:
The ray.
- Return type:
- as_segment( ) ostk::mathematics::geometry::d3::object::Segment¶
Convert the object to a segment.
- Returns:
The segment.
- Return type:
- as_sphere( ) ostk::mathematics::geometry::d3::object::Sphere¶
Convert the object to a sphere.
- Returns:
The sphere.
- Return type:
- contains(
- self: ostk.mathematics.geometry.d3.object.Segment,
- point: ostk.mathematics.geometry.d3.object.Point,
Check if the segment contains a point.
- Parameters:
point (Point) -- The point to check.
- Returns:
True if the segment contains the point, False otherwise.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> segment.contains(Point(1.0, 0.0, 0.0)) # True (midpoint)
- distance_to(*args, **kwargs)¶
Overloaded function.
distance_to(self: ostk.mathematics.geometry.d3.object.Segment, point: ostk.mathematics.geometry.d3.object.Point) -> ostk.core.type.Real
Calculate the distance from the segment to a point.
- Args:
point (Point): The point to calculate distance to.
- Returns:
float: The distance from the segment to the point.
- Example:
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> distance = segment.distance_to(Point(1.0, 0.0, 0.0)) # 1.0
distance_to(self: ostk.mathematics.geometry.d3.object.Segment, point_set: ostk.mathematics.geometry.d3.object.PointSet) -> ostk.core.type.Real
Calculate the distance from the segment to a point set.
- Args:
point_set (PointSet): The point set to calculate distance to.
- Returns:
float: The distance from the segment to the point set.
- Example:
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> points = PointSet([Point(1.0, 0.0, 0.0), Point(3.0, 0.0, 0.0)]) >>> distance = segment.distance_to(points) # 1.0
- get_center( ) ostk.mathematics.geometry.d3.object.Point¶
Get the center point of the segment.
- Returns:
The midpoint of the segment.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 2.0, 2.0)) >>> center = segment.get_center() # Point(1.0, 1.0, 1.0)
- get_direction( ) numpy.ndarray[numpy.float64[3, 1]]¶
Get the direction vector of the segment.
- Returns:
The normalized direction vector from first to second point.
- Return type:
Vector3d
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(1.0, 0.0, 0.0)) >>> direction = segment.get_direction() # [1.0, 0.0, 0.0]
- get_first_point( ) ostk.mathematics.geometry.d3.object.Point¶
Get the first endpoint of the segment.
- Returns:
The first endpoint of the segment.
- Return type:
Example
>>> segment = Segment(Point(1.0, 2.0, 3.0), Point(4.0, 5.0, 6.0)) >>> first_point = segment.get_first_point() # Point(1.0, 2.0, 3.0)
- get_length( ) ostk.core.type.Real¶
Get the length of the segment.
- Returns:
The distance between the two endpoints.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(3.0, 4.0, 0.0)) >>> length = segment.get_length() # 5.0
- get_second_point( ) ostk.mathematics.geometry.d3.object.Point¶
Get the second endpoint of the segment.
- Returns:
The second endpoint of the segment.
- Return type:
Example
>>> segment = Segment(Point(1.0, 2.0, 3.0), Point(4.0, 5.0, 6.0)) >>> second_point = segment.get_second_point() # Point(4.0, 5.0, 6.0)
- intersection_with(
- self: ostk.mathematics.geometry.d3.object.Segment,
- plane: ostk::mathematics::geometry::d3::object::Plane,
Calculate the intersection of the segment with a plane.
- Parameters:
plane (Plane) -- The plane to calculate intersection with.
- Returns:
The intersection of the segment with the plane.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> plane = Plane(Point(1.0, 0.0, 0.0), Vector3d(0.0, 0.0, 1.0)) >>> intersection = segment.intersection_with(plane) >>> intersection.get_point() # Point(1.0, 0.0, 0.0)
- intersects(*args, **kwargs)¶
Overloaded function.
intersects(self: ostk.mathematics.geometry.d3.object.Segment, plane: ostk::mathematics::geometry::d3::object::Plane) -> bool
Check if the segment intersects a plane.
- Args:
plane (Plane): The plane to check intersection with.
- Returns:
bool: True if the segment intersects the plane.
- Example:
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> segment.intersects(Plane(Point(1.0, 0.0, 0.0), Vector3d(0.0, 0.0, 1.0))) # True
intersects(self: ostk.mathematics.geometry.d3.object.Segment, sphere: ostk::mathematics::geometry::d3::object::Sphere) -> bool
Check if the segment intersects a sphere.
- Args:
sphere (Sphere): The sphere to check intersection with.
- Returns:
bool: True if the segment intersects the sphere.
- Example:
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> segment.intersects(Sphere(Point(1.0, 0.0, 0.0), 1.0)) # True
intersects(self: ostk.mathematics.geometry.d3.object.Segment, ellipsoid: ostk::mathematics::geometry::d3::object::Ellipsoid) -> bool
Check if the segment intersects an ellipsoid.
- Args:
ellipsoid (Ellipsoid): The ellipsoid to check intersection with.
- Returns:
bool: True if the segment intersects the ellipsoid.
- Example:
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(2.0, 0.0, 0.0)) >>> segment.intersects(Ellipsoid(Point(1.0, 0.0, 0.0), 1.0, 1.0, 1.0)) # True
- is_cone(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a cone.
- Returns:
True if the object is a cone.
- Return type:
- is_defined(self: ostk.mathematics.geometry.d3.object.Segment) bool¶
Check if the segment is defined.
- Returns:
True if the segment is defined, False otherwise.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(1.0, 1.0, 1.0)) >>> segment.is_defined() # True
- is_degenerate(self: ostk.mathematics.geometry.d3.object.Segment) bool¶
Check if the segment is degenerate (both endpoints are the same).
- Returns:
True if the segment is degenerate, False otherwise.
- Return type:
Example
>>> point = Point(0.0, 0.0, 0.0) >>> degenerate_segment = Segment(point, point) >>> degenerate_segment.is_degenerate() # True
- is_ellipsoid(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is an ellipsoid.
- Returns:
True if the object is an ellipsoid.
- Return type:
- is_line(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a line.
- Returns:
True if the object is a line.
- Return type:
- is_line_string(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a line string.
- Returns:
True if the object is a line string.
- Return type:
- is_plane(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a plane.
- Returns:
True if the object is a plane.
- Return type:
- is_point(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a point.
- Returns:
True if the object is a point.
- Return type:
- is_point_set(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a point set.
- Returns:
True if the object is a point set.
- Return type:
- is_polygon(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a polygon.
- Returns:
True if the object is a polygon.
- Return type:
- is_pyramid(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a pyramid.
- Returns:
True if the object is a pyramid.
- Return type:
- is_ray(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a ray.
- Returns:
True if the object is a ray.
- Return type:
- is_segment(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a segment.
- Returns:
True if the object is a segment.
- Return type:
- is_sphere(self: ostk.mathematics.geometry.d3.Object) bool¶
Check if the object is a sphere.
- Returns:
True if the object is a sphere.
- Return type:
- to_line( ) ostk.mathematics.geometry.d3.object.Line¶
Convert the segment to a line.
- Returns:
A line passing through the segment's endpoints.
- Return type:
Example
>>> segment = Segment(Point(0.0, 0.0, 0.0), Point(1.0, 1.0, 1.0)) >>> line = segment.to_line()
- static undefined() ostk.mathematics.geometry.d3.object.Segment¶
Create an undefined segment.
- Returns:
An undefined segment object.
- Return type:
Example
>>> undefined_segment = Segment.undefined() >>> undefined_segment.is_defined() # False