---
title: Namespace: Math2D
source: https://vjmap.com/doc/Namespace_Math2D.html
---

# Namespace: Math2D

### Table of contents

#### Classes

- [Box](#classesmath2dboxmd)

#### Interfaces

- [UvBox](#interfacesmath2duvboxmd)

#### Functions

- [computeSquaredLineLength](#computesquaredlinelength)
- [dist](#dist)
- [distSquared](#distsquared)
- [distToSegmentSquared](#disttosegmentsquared)
- [intersectLineAndCircle](#intersectlineandcircle)
- [intersectLines](#intersectlines)
- [lineDist](#linedist)

### Functions

#### computeSquaredLineLength

▸ **computeSquaredLineLength**(`line`: *number*[]): *number*

Computes the squared length of a line.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `line` | *number*[] | An array of that forms a line via [x,y,z,x,y,z,...] tuples. |

**Returns:** *number*

___

#### dist

▸ **dist**(`ax`: *number*, `ay`: *number*, `bx`: *number*, `by`: *number*, `az?`: *number*, `bz?`: *number*): *number*

Compute distance between two 2D points `a` and `b`.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `ax` | *number* | Point a.x |
| `ay` | *number* | Point a.y |
| `bx` | *number* | Point b.x |
| `by` | *number* | Point b.y |
| `az?` | *number* |  |
| `bz?` | *number* |  |

**Returns:** *number*

between the two points

___

#### distSquared

▸ **distSquared**(`ax`: *number*, `ay`: *number*, `bx`: *number*, `by`: *number*): *number*

Compute squared distance between two 2D points `a` and `b`.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `ax` | *number* | Point a.x |
| `ay` | *number* | Point a.y |
| `bx` | *number* | Point b.x |
| `by` | *number* | Point b.y |

**Returns:** *number*

Squared distance between the two points

___

#### distToSegmentSquared

▸ **distToSegmentSquared**(`px`: *number*, `py`: *number*, `l0x`: *number*, `l0y`: *number*, `l1x`: *number*, `l1y`: *number*): *number*

Compute squared distance between a 2D point and a 2D line segment.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `px` | *number* | Test point X |
| `py` | *number* | Test point y |
| `l0x` | *number* | Line segment start X |
| `l0y` | *number* | Line segment start Y |
| `l1x` | *number* | Line segment end X |
| `l1y` | *number* | Line segment end Y |

**Returns:** *number*

Squared distance between point and line segment

___

#### intersectLineAndCircle

▸ **intersectLineAndCircle**(`xLine1`: *number*, `yLine1`: *number*, `xLine2`: *number*, `yLine2`: *number*, `radius`: *number*, `xCenter?`: *number*, `yCenter?`: *number*): { `x1`: *number* ; `x2?`: *number* ; `y1`: *number* ; `y2?`: *number*  } \| *undefined*

Finds the intersections of a line and a circle.

##### Parameters

| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `xLine1` | *number* | - | abscissa of first line point. |
| `yLine1` | *number* | - | ordinate of second line point. |
| `xLine2` | *number* | - | abscissa of second line point. |
| `yLine2` | *number* | - | ordinate of second line point. |
| `radius` | *number* | - | circle radius. |
| `xCenter` | *number* | 0 | abscissa of circle center. |
| `yCenter` | *number* | 0 | ordinate of circle center. |

**Returns:** { `x1`: *number* ; `x2?`: *number* ; `y1`: *number* ; `y2?`: *number*  } \| *undefined*

coordinates of the intersections (1 if the line is tangent to the circle, 2
if it's secant) or undefined if there's no intersection.

___

#### intersectLines

▸ **intersectLines**(`x1`: *number*, `y1`: *number*, `x2`: *number*, `y2`: *number*, `x3`: *number*, `y3`: *number*, `x4`: *number*, `y4`: *number*, `result?`: Vec2Like): Vec2Like \| *undefined*

Computes the intersection point between two lines.

**`remarks`**
This functions computes the
[line-line intersection](https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection) of two lines given two points on each line.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `x1` | *number* | x coordinate of the first point of the first line. |
| `y1` | *number* | y coordinate of the first point of the first line. |
| `x2` | *number* | x coordinate of the second point of the first line. |
| `y2` | *number* | y coordinate of the second point of the first line. |
| `x3` | *number* | x coordinate of the first point of the second line. |
| `y3` | *number* | y coordinate of the first point of the second line. |
| `x4` | *number* | x coordinate of the second point of the second line. |
| `y4` | *number* | y coordinate of the second point of the second line. |
| `result` | Vec2Like | The resulting point. |

**Returns:** Vec2Like \| *undefined*

___

#### lineDist

▸ **lineDist**(`pts`: [*GeoPointLike*](#geopointlike)[]): *number*

求线的距离

##### Parameters

| Name | Type |
| :------ | :------ |
| `pts` | [*GeoPointLike*](#geopointlike)[] |

**Returns:** *number*


<a name="modulesmathutilsmd"></a>

[vjmap](#readmemd) / [Exports](#modulesmd) / MathUtils
