Math.Geometry


Vector2D Module

Types

Type Description

ListTransform

Transform

Functions and values

Function or value Description

centimeters x y

Full Usage: centimeters x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

componentIn d v

Full Usage: componentIn d v

Parameters:
Returns: Quantity<'Units>

Find the component of a vector in an arbitrary direction, for example

d : Direction2D<'Coordinates>
v : Vector2D<'Units, 'Coordiantes>
Returns: Quantity<'Units>

components v

Full Usage: components v

Parameters:
Returns: Quantity<'Units> * Quantity<'Units>

Get the X and Y components of a vector as a tuple.

v : Vector2D<'Units, 'Coordinates>
Returns: Quantity<'Units> * Quantity<'Units>

cross lhs rhs

Full Usage: cross lhs rhs

Parameters:
Returns: Quantity<Squared<'Units>>
lhs : Vector2D<'Units, 'Coordinates>
rhs : Vector2D<'Units, 'Coordinates>
Returns: Quantity<Squared<'Units>>

direction v

Full Usage: direction v

Parameters:
Returns: Direction2D<'Coordinates> option

Get the direction the a vector is facing.

v : Vector2D<'Units, 'Coordinates>
Returns: Direction2D<'Coordinates> option

distanceSquaredTo p1 p2

Full Usage: distanceSquaredTo p1 p2

Parameters:
Returns: Quantity<Squared<'Units>>

Get the distance between two vectors squared. This function can be used to optimize some algorithms because you remove a square root call from the calculation which can be an expensive operation.

p1 : Vector2D<'Units, 'Coordinates>
p2 : Vector2D<'Units, 'Coordinates>
Returns: Quantity<Squared<'Units>>

distanceTo p1 p2

Full Usage: distanceTo p1 p2

Parameters:
Returns: Quantity<'Units>
p1 : Vector2D<'a, 'b>
p2 : Vector2D<'a, 'b>
Returns: Quantity<'Units>

dividedBy rhs lhs

Full Usage: dividedBy rhs lhs

Parameters:
    rhs : float
    lhs : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>
rhs : float
lhs : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

dot lhs rhs

Full Usage: dot lhs rhs

Parameters:
Returns: Quantity<Squared<'Units>>
lhs : Vector2D<'Units, 'Coordinates>
rhs : Vector2D<'Units, 'Coordinates>
Returns: Quantity<Squared<'Units>>

equalWithin tolerance lhs rhs

Full Usage: equalWithin tolerance lhs rhs

Parameters:
Returns: bool

Compare two vectors within a tolerance. Returns true if the difference between the two given vectors has magnitude less than the given tolerance.

tolerance : Quantity<'Units>
lhs : Vector2D<'Units, 'Coordinates>
rhs : Vector2D<'Units, 'Coordinates>
Returns: bool

feet x y

Full Usage: feet x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

from p1 p2

Full Usage: from p1 p2

Parameters:
    p1 : Point2D<'Units, 'Coordinates>
    p2 : Point2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>
p1 : Point2D<'Units, 'Coordinates>
p2 : Point2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

fromList list

Full Usage: fromList list

Parameters:
    list : float list

Returns: Vector2D<'Units, 'Coordinates> option
list : float list
Returns: Vector2D<'Units, 'Coordinates> option

half v

Full Usage: half v

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

Shorthand for `Vector2D.scaleBy 0.5`.

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

inches x y

Full Usage: inches x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

length

Full Usage: length

Returns: Vector2D<'a, 'b> -> Quantity<'a>

Alias for `Vector2D.magnitude`

Returns: Vector2D<'a, 'b> -> Quantity<'a>

magnitude v

Full Usage: magnitude v

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

meters x y

Full Usage: meters x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

midVector p1 p2

Full Usage: midVector p1 p2

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

Get the vector that is the average of two vectors.

p1 : Vector2D<'Units, 'Coordinates>
p2 : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

millimeters x y

Full Usage: millimeters x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

minus rhs lhs

Full Usage: minus rhs lhs

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

mirrorAcross axis v

Full Usage: mirrorAcross axis v

Parameters:
    axis : Axis2D<'AxisUnit, 'Coordinates>
    v : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>

Mirror a vector across a given axis. The position of the axis doesn't matter, only its orientation:

axis : Axis2D<'AxisUnit, 'Coordinates>
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

neg v

Full Usage: neg v

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

negate

Full Usage: negate

Returns: Vector2D<'a, 'b> -> Vector2D<'a, 'b>

Alias for `Vector2D.reverse`

Returns: Vector2D<'a, 'b> -> Vector2D<'a, 'b>

normalize v

Full Usage: normalize v

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

perpendicularTo givenVector

Full Usage: perpendicularTo givenVector

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

Returns: Vector2D<'Units, 'Coordinates>

Construct a vector perpendicular to the given vector, by rotating the given vector 90 degrees counterclockwise. The constructed vector will have the same length as the given vector. Alias for `Vector2D.rotateCounterclockwise`.

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

pixels x y

Full Usage: pixels x y

Parameters:
    x : float
    y : float

Returns: Vector2D<Meters, 'Coordinates>
x : float
y : float
Returns: Vector2D<Meters, 'Coordinates>

placeIn frame v

Full Usage: placeIn frame v

Parameters:
    frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    v : Vector2D<'Units, 'LocalCoordinates>

Returns: Vector2D<'Units, 'GlobalCoordinates>

Take a vector defined in local coordinates relative to a given reference frame, and return that vector expressed in global coordinates.

frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
v : Vector2D<'Units, 'LocalCoordinates>
Returns: Vector2D<'Units, 'GlobalCoordinates>

plus rhs lhs

Full Usage: plus rhs lhs

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

This function is designed to be used in piping operators.

rhs : Vector2D<'Units, 'Coordinates>
lhs : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

polar r theta

Full Usage: polar r theta

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

Alias for `rTheta`

r : Quantity<'Units>
theta : Angle
Returns: Vector2D<'Units, 'Coordinates>

projectOnto axis v

Full Usage: projectOnto axis v

Parameters:
    axis : Axis2D<'Units, 'Coordinates>
    v : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>

Project a vector onto an axis.

axis : Axis2D<'Units, 'Coordinates>
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

projectionIn d v

Full Usage: projectionIn d v

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

Find the projection of a vector in a particular direction. Conceptually, this means splitting the original vector into a portion parallel to the given direction and a portion perpendicular to it, then returning the parallel portion.

d : Direction2D<'Coordinates>
v : Vector2D<'Units, 'Coordiantes>
Returns: Vector2D<'Units, 'Coordinates>

rTheta r theta

Full Usage: rTheta r theta

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

Construct a vector using polar coordinates coordinates given a length and angle

r : Quantity<'Units>
theta : Angle
Returns: Vector2D<'Units, 'Coordinates>

rThetaIn frame r theta

Full Usage: rThetaIn frame r theta

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>
    r : Quantity<'Units>
    theta : Angle

Returns: Vector2D<'Units, 'Coordinates>

Construct a vector given its local polar components within a particular

frame : Frame2D<'Units, 'Coordinates, 'Defines>
r : Quantity<'Units>
theta : Angle
Returns: Vector2D<'Units, 'Coordinates>

relativeTo frame v

Full Usage: relativeTo frame v

Parameters:
    frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    v : Vector2D<'Units, 'GlobalCoordinates>

Returns: Vector2D<'Units, 'LocalCoordinates>

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

frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
v : Vector2D<'Units, 'GlobalCoordinates>
Returns: Vector2D<'Units, 'LocalCoordinates>

reverse v

Full Usage: reverse v

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

Reverse the direction of a vector, negating its components.

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

rotateBy a v

Full Usage: rotateBy a v

Parameters:
    a : Angle
    v : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>

Rotate a vector counterclockwise by a given angle.

a : Angle
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

rotateByClockwise a v

Full Usage: rotateByClockwise a v

Parameters:
    a : Angle
    v : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>

Rotate a vector clockwise by a given angle.

a : Angle
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

rotateByCounterClockwise

Full Usage: rotateByCounterClockwise

Returns: Angle -> Vector2D<'a, 'b> -> Vector2D<'a, 'b>

Rotate a vector counterClockwise by a given angle. Alias for `rotateBy`

Returns: Angle -> Vector2D<'a, 'b> -> Vector2D<'a, 'b>

rotateClockwise v

Full Usage: rotateClockwise v

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

Rotate the given vector 90 degrees counterclockwise; Vector2D.rotateCounterclockwise vector is equivalent to Vector2D.rotateBy (Angle.degrees 90) vector but is more efficient.

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

rotateCounterclockwise v

Full Usage: rotateCounterclockwise v

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

Rotate the given vector 90 degrees clockwise; Vector2D.rotateClockwise vector is equivalent to Vector2D.rotateBy (Angle.degrees -90) vector but is more efficient.

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

round v

Full Usage: round v

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

Round the vector to the internal precision. (Default is 8 digits past the decimal point)

v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'a>

roundTo digits v

Full Usage: roundTo digits v

Parameters:
    digits : int
    v : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>

Round the vector to a specified number of digits

digits : int
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

scaleBy

Full Usage: scaleBy

Returns: float -> Vector2D<'a, 'b> -> Vector2D<'a, 'b>

Alias for `Vector2D.times`

Returns: float -> Vector2D<'a, 'b> -> Vector2D<'a, 'b>

scaleTo scale v

Full Usage: scaleTo scale v

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

Scale a vector to a given length.

scale : Quantity<'Units>
v : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

sum vectors

Full Usage: sum vectors

Parameters:
    vectors : Vector2D<'Units, 'Coordiante> list

Returns: Vector2D<'Units, 'Coordiantes>

Find the sum of a list of vectors.

vectors : Vector2D<'Units, 'Coordiante> list
Returns: Vector2D<'Units, 'Coordiantes>

times rhs lhs

Full Usage: times rhs lhs

Parameters:
    rhs : float
    lhs : Vector2D<'Units, 'Coordinates>

Returns: Vector2D<'Units, 'Coordinates>
rhs : float
lhs : Vector2D<'Units, 'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

toList vector

Full Usage: toList vector

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

Returns: float list
vector : Vector2D<'Units, 'Coordinates>
Returns: float list

twice v

Full Usage: twice v

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

Shorthand for `Vector2D.scaleBy 2`.

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

withQuantity a d

Full Usage: withQuantity a d

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

Construct a vector with the given length in the given direction.

a : Quantity<'Units>
d : Direction2D<'Coordinates>
Returns: Vector2D<'Units, 'Coordinates>

x v

Full Usage: x v

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

xy x y

Full Usage: xy x y

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

Construct a Vector2D object from the x and y lengths.

x : Quantity<'Units>
y : Quantity<'Units>
Returns: Vector2D<'Units, 'Coordinates>

xyIn frame x y

Full Usage: xyIn frame x y

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

Construct a vector given its local components within a particular frame

frame : Frame2D<'Units, 'Coordinates, 'Defines>
x : Quantity<'Units>
y : Quantity<'Units>
Returns: Vector2D<'Units, 'Coordinates>

y v

Full Usage: y v

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

zero

Full Usage: zero

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