Math.Geometry


LineSegment2D Module

Functions and values

Function or value Description

along axis start finish

Full Usage: along axis start finish

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Construct a segment segment lying on the given axis, with its endpoints at the given distances from the axis' origin point.

axis : Axis2D<'Units, 'Coordinates>
start : Quantity<'Units>
finish : Quantity<'Units>
Returns: LineSegment2D<'Units, 'Coordinates>

areParallel first second

Full Usage: areParallel first second

Parameters:
Returns: bool
first : LineSegment2D<'Units, 'Coordinates>
second : LineSegment2D<'Units, 'Coordinates>
Returns: bool

axis segment

Full Usage: axis segment

Parameters:
Returns: Axis2D<'Units, 'Coordinates> option
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Axis2D<'Units, 'Coordinates> option

boundingBox segment

Full Usage: boundingBox segment

Parameters:
Returns: BoundingBox2D<'Units, 'Coordinates>

Get the minimal bounding box containing a given line segment.

segment : LineSegment2D<'Units, 'Coordinates>
Returns: BoundingBox2D<'Units, 'Coordinates>

direction segment

Full Usage: direction segment

Parameters:
Returns: Direction2D<'Coordinates> option
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Direction2D<'Coordinates> option

distanceToPoint point segment

Full Usage: distanceToPoint point segment

Parameters:
Returns: Quantity<'Units>
point : Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Quantity<'Units>

endpoints segment

Full Usage: endpoints segment

Parameters:
Returns: Point2D<'Units, 'Coordinates> * Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates> * Point2D<'Units, 'Coordinates>

finish segment

Full Usage: finish segment

Parameters:
Returns: Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates>

from start finish

Full Usage: from start finish

Parameters:
    start : Point2D<'Units, 'Coordinates>
    finish : Point2D<'Units, 'Coordinates>

Returns: LineSegment2D<'Units, 'Coordinates>

Generate a segment segment from two points. This doesn't perform any checks ensuring that the points are not equal. If that is the behavior that you want you should use function.

start : Point2D<'Units, 'Coordinates>
finish : Point2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

fromEndpoints (arg1, arg2)

Full Usage: fromEndpoints (arg1, arg2)

Parameters:
    arg0 : Point2D<'Units, 'Coordinates>
    arg1 : Point2D<'Units, 'Coordinates>

Returns: LineSegment2D<'Units, 'Coordinates>

Construct a segment segment from it's two endpoints as a tuple.

arg0 : Point2D<'Units, 'Coordinates>
arg1 : Point2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

fromPointAndVector start direction

Full Usage: fromPointAndVector start direction

Parameters:
    start : Point2D<'Units, 'Coordinates>
    direction : Vector2D<'Units, 'Coordinates>

Returns: Line2D<'Units, 'Coordinates>

Create a segment segment starting at point in a particular direction and length

start : Point2D<'Units, 'Coordinates>
direction : Vector2D<'Units, 'Coordinates>
Returns: Line2D<'Units, 'Coordinates>

interpolate segment t

Full Usage: interpolate segment t

Parameters:
Returns: Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
t : float
Returns: Point2D<'Units, 'Coordinates>

intersectionPoint lineSegment1 lineSegment2

Full Usage: intersectionPoint lineSegment1 lineSegment2

Parameters:
Returns: Point2D<'Units, 'Coordinates> option

Try to find the intersection between two lines. If the lines are parallel (even if they are overlapping) then no intersection is returned

lineSegment1 : LineSegment2D<'Units, 'Coordinates>
lineSegment2 : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates> option

intersectionWithAxis axis lineSegment

Full Usage: intersectionWithAxis axis lineSegment

Parameters:
Returns: Point2D<'Units, 'Coordinates> option

Attempt to find the unique intersection point of a line segment with an axis. If there is no such point (the line segment does not touch the axis, or lies perfectly along it), returns `Nothing`.

axis : Axis2D<'Units, 'Coordinates>
lineSegment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates> option

isPointOnSegment point segment

Full Usage: isPointOnSegment point segment

Parameters:
Returns: bool
point : Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: bool

length segment

Full Usage: length segment

Parameters:
Returns: Quantity<'Units>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Quantity<'Units>

mapEndpoints f segment

Full Usage: mapEndpoints f segment

Parameters:
Returns: LineSegment2D<'UnitB, 'CoordinatesB>

Transform the start and end points of a line segment by a given function and create a new line segment from the resulting points. Most other transformation functions can be defined in terms of `mapEndpoints`

f : Point2D<'UnitA, 'CoordinatesA> -> Point2D<'UnitB, 'CoordinatesB>
segment : LineSegment2D<'UnitA, 'CoordinatesA>
Returns: LineSegment2D<'UnitB, 'CoordinatesB>

midpoint segment

Full Usage: midpoint segment

Parameters:
Returns: Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates>

mirrorAcross axis segment

Full Usage: mirrorAcross axis segment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Mirror a line segment across an axis. Note that the endpoints of a mirrored segment are equal to the mirrored endpoints of the original segment, but as a result the normal direction of a mirrored segment is the _opposite_ of the mirrored normal direction of the original segment (since the normal direction is always considered to be 'to the left' of the line segment).

axis : Axis2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

perpendicularDirection segment

Full Usage: perpendicularDirection segment

Parameters:
Returns: Direction2D<'Coordinates> option

Get the direction perpendicular to a segment segment, pointing to the left. If the segment segment has zero length, returns `Nothing`.

segment : LineSegment2D<'Units, 'Coordinates>
Returns: Direction2D<'Coordinates> option

placeIn frame segment

Full Usage: placeIn frame segment

Parameters:
    frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    segment : LineSegment2D<'Units, 'LocalCoordinates>

Returns: LineSegment2D<'Units, 'GlobalCoordinates>

Take a line segment considered to be defined in local coordinates relative to a given reference frame, and return that line segment expressed in global coordinates.

frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
segment : LineSegment2D<'Units, 'LocalCoordinates>
Returns: LineSegment2D<'Units, 'GlobalCoordinates>

pointClosestTo point segment

Full Usage: pointClosestTo point segment

Parameters:
Returns: Point2D<'Units, 'Coordinates>

Get the point on a line segment that is closest to the input point.

point : Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates>

projectOnto axis segment

Full Usage: projectOnto axis segment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Project a line segment onto an axis.

axis : Axis2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

relativeTo frame segment

Full Usage: relativeTo frame segment

Parameters:
    frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    segment : LineSegment2D<'Units, 'GlobalCoordinates>

Returns: LineSegment2D<'Units, 'LocalCoordinates>

Take a line segment defined in global coordinates, and return it expressed in local coordinates relative to a given reference frame.

frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
segment : LineSegment2D<'Units, 'GlobalCoordinates>
Returns: LineSegment2D<'Units, 'LocalCoordinates>

reverse segment

Full Usage: reverse segment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

rotateAround centerPoint angle segment

Full Usage: rotateAround centerPoint angle segment

Parameters:
    centerPoint : Point2D<'Units, 'Coordinates>
    angle : Angle
    segment : LineSegment2D<'Units, 'Coordinates>

Returns: LineSegment2D<'Units, 'Coordinates>

Rotate a line segment counterclockwise around a given center point by a given angle.

centerPoint : Point2D<'Units, 'Coordinates>
angle : Angle
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

round segment

Full Usage: round segment

Parameters:
Returns: LineSegment2D<'Units, 'a>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'a>

safeFrom start finish

Full Usage: safeFrom start finish

Parameters:
    start : Point2D<'Units, 'Coordinates>
    finish : Point2D<'Units, 'Coordinates>

Returns: LineSegment2D<'Units, 'Coordinates> option

Safely create a segment segment. This function returns `None` when the two points are almost equal. This has to do with the .

start : Point2D<'Units, 'Coordinates>
finish : Point2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates> option

scaleAbout point scale segment

Full Usage: scaleAbout point scale segment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Scale a line segment about the given center point by the given scale.

point : Point2D<'Units, 'Coordinates>
scale : float
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

signedDistanceAlong axis segment

Full Usage: signedDistanceAlong axis segment

Parameters:
Returns: Interval<'Units>

Measure the distance of a line segment along an axis. This is the range of distances along the axis resulting from projecting the line segment perpendicularly onto the axis. Note that reversing the line segment will _not_ affect the result.

axis : Axis2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Interval<'Units>

signedDistanceFrom axis segment

Full Usage: signedDistanceFrom axis segment

Parameters:
Returns: Interval<'Units>

Measure the distance of a line segment from an axis. If the returned interval: - is entirely positive, then the line segment is to the left of the axis - is entirely negative, then the line segment is to the right of the axis - contains zero, then the line segment crosses the axis Note that reversing the line segment will _not_ affect the result.

axis : Axis2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Interval<'Units>

start segment

Full Usage: start segment

Parameters:
Returns: Point2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: Point2D<'Units, 'Coordinates>

translateBy displacementVector segment

Full Usage: translateBy displacementVector segment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Translate a line segment by a given displacement.

displacementVector : Vector2D<'Units, 'Coordinates>
segment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

translateIn translationDirection distance lineSegment

Full Usage: translateIn translationDirection distance lineSegment

Parameters:
Returns: LineSegment2D<'Units, 'Coordinates>

Translate a line segment in a given direction by a given distance.

translationDirection : Direction2D<'Coordinates>
distance : Quantity<'Units>
lineSegment : LineSegment2D<'Units, 'Coordinates>
Returns: LineSegment2D<'Units, 'Coordinates>

vector segment

Full Usage: vector segment

Parameters:
Returns: Vector2D<'Units, 'Coordinates>

Get the vector from the start point to the end point of the segment segment

segment : LineSegment2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>