skspatial.objects.Plane.project_line

Plane.project_line(line: skspatial.objects.line.Line, **kwargs: float) skspatial.objects.line.Line[source]

Project a line onto the plane.

This method can also handle the case where the line is parallel to the plane.

Parameters
lineLine

Input line.

kwargsdict, optional

Additional keywords passed to Vector.is_perpendicular(), which is used to check if the line is parallel to the plane (i.e., the line direction is perpendicular to the plane normal).

Returns
Line

Projection of the line onto the plane.

Examples

>>> from skspatial.objects import Line, Plane
>>> plane = Plane([0, 0, 0], [0, 0, 1])
>>> line = Line([0, 0, 0], [1, 1, 1])
>>> plane.project_line(line)
Line(point=Point([0., 0., 0.]), direction=Vector([1., 1., 0.]))

The line is parallel to the plane.

>>> line = Line([0, 0, 5], [1, 0, 0])
>>> plane.project_line(line)
Line(point=Point([0., 0., 0.]), direction=Vector([1, 0, 0]))