# Scenic.Math.Line (Scenic v0.10.3) View Source

A collection of functions to work with lines.

Lines are always two points in a tuple.

``````{point_a, point_b}
{{x0, y0}, {x1, y1}}``````

# Link to this section Summary

## Functions

Find the point of intersection between two lines.

Find a new line that is parallel to the given line and separated by the given distance.

Round the points that define a line so that they are made up of integers.

Truncate the points that define a line so that they are made up of integers.

# intersection(line_a, line_b)

View Source

## Specs

```intersection(line_a :: Scenic.Math.line(), line_b :: Scenic.Math.line()) ::
Scenic.Math.point()```

Find the point of intersection between two lines.

Parameters:

• `line_a` - A line defined by two points. `{point_a, point_b}`
• `line_b` - A line defined by two points. `{point_a, point_b}`

Returns: A point

## Examples

iex> Scenic.Math.Line.intersection({{1, 1}, {3, 3}}, {{3, 1}, {1, 3}}) {2.0, 2.0}

# parallel(line, distance)

View Source

## Specs

`parallel(line :: Scenic.Math.line(), distance :: number()) :: Scenic.Math.line()`

Find a new line that is parallel to the given line and separated by the given distance.

Parameters:

• `line` - A line defined by two points. `{point_a, point_b}`
• `distance` - The perpendicular distance to the new line.

Returns: A line

## Examples

``````iex> Scenic.Math.Line.parallel({{1, 1}, {1, 2}}, 2)
{{3.0, 1.0}, {3.0, 2.0}}``````

# round(line)

View Source

## Specs

`round(line :: Scenic.Math.line()) :: Scenic.Math.line()`

Round the points that define a line so that they are made up of integers.

Parameters:

• `line` - A line defined by two points. {point_a, point_b}

Returns:

A line

## Examples

``````iex> Scenic.Math.Line.round({{1.5, 1.6}, {2.1, 2.56}})
{{2, 2}, {2, 3}}``````

# trunc(line)

View Source

## Specs

`trunc(line :: Scenic.Math.line()) :: Scenic.Math.line()`

Truncate the points that define a line so that they are made up of integers.

Parameters:

• `line` - A line defined by two points. `{point_a, point_b}`

Returns:

A line

## Examples

``````iex> Scenic.Math.Line.trunc({{1.1, 1.1}, {2.0, 2.0}})
{{1, 1}, {2, 2}}
iex> Scenic.Math.Line.trunc({{-1, 1}, {-2.0, 2.0}})
{{-1, 1}, {-2, 2}}``````