# Class: Vector2

## Table of contents

### Constructors

- constructor

### Properties

- ONE
- ZERO

### Accessors

- x
- y

### Methods

- add
- clone
- dot
- equal
- getAngle
- isZero
- length
- lerp
- negate
- normalize
- scale
- set
- setArray
- setValue
- sub
- toArray
- createFromArray
- createFromNumber
- createFromTypedArray

## Constructors

### constructor

• **new Vector2**(`raw?`, `offset?`)

#### Parameters

| Name | Type |
| :------ | :------ |
| `raw?` | `Float32Array` |
| `offset?` | `number` |

## Properties

### ONE

▪ `Static` `Readonly` **ONE**: [`Vector2`](Vector2)

一向量，不要对该对象进行修改

**`readonly`**

**`static`**

**`memberof`** Vector3

___

### ZERO

▪ `Static` `Readonly` **ZERO**: [`Vector2`](Vector2)

零向量，不要对该对象进行修改

**`readonly`**

**`static`**

**`memberof`** Vector3

## Accessors

### x

• `get` **x**(): `number`

x值

**`memberof`** Vector2

#### Returns

`number`

• `set` **x**(`val`): `void`

x值

#### Parameters

| Name | Type |
| :------ | :------ |
| `val` | `number` |

#### Returns

`void`

___

### y

• `get` **y**(): `number`

y值

**`memberof`** Vector2

#### Returns

`number`

• `set` **y**(`val`): `void`

y值

#### Parameters

| Name | Type |
| :------ | :------ |
| `val` | `number` |

#### Returns

`void`

## Methods

### add

▸ **add**(`v`, `dst?`): [`Vector2`](Vector2)

向量加法

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `v` | [`Vector2`](Vector2) | 目标向量 |
| `dst?` | [`Vector2`](Vector2) | - |

#### Returns

[`Vector2`](Vector2)

计算结果

___

### clone

▸ **clone**(): [`Vector2`](Vector2)

拷贝该向量

**`memberof`** Vector2

#### Returns

[`Vector2`](Vector2)

拷贝出来的对象

___

### dot

▸ **dot**(`v`): `number`

向量点乘

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `v` | [`Vector2`](Vector2) | 目标向量 |

#### Returns

`number`

计算结果

___

### equal

▸ **equal**(`v`): `boolean`

判断与目标向量的值是否相等

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `v` | [`Vector2`](Vector2) | 目标向量 |

#### Returns

`boolean`

是否相等，这里误差小于10^-6视为相等

___

### getAngle

▸ **getAngle**(): `number`

获取向量旋转角，以角度表示

**`memberof`** Vector2

#### Returns

`number`

旋转角，以角度表示

___

### isZero

▸ **isZero**(): `boolean`

是否为零向量

**`memberof`** Vector2

#### Returns

`boolean`

___

### length

▸ **length**(): `number`

向量的模

**`memberof`** Vector2

#### Returns

`number`

计算结果

___

### lerp

▸ **lerp**(`v`, `f`, `dst?`): [`Vector2`](Vector2)

在该向量与目标向量之间计算插值

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `v` | [`Vector2`](Vector2) | 目标向量 |
| `f` | `number` | 插值系数 |
| `dst?` | [`Vector2`](Vector2) | - |

#### Returns

[`Vector2`](Vector2)

计算结果

___

### negate

▸ **negate**(): [`Vector2`](Vector2)

取反

#### Returns

[`Vector2`](Vector2)

___

### normalize

▸ **normalize**(`dst?`): [`Vector2`](Vector2)

向量归一化，如该向量为零向量，则结果依然为零向量

**`memberof`** Vector2

#### Parameters

| Name | Type |
| :------ | :------ |
| `dst?` | [`Vector2`](Vector2) |

#### Returns

[`Vector2`](Vector2)

计算结果

___

### scale

▸ **scale**(`f`, `dst?`): [`Vector2`](Vector2)

向量缩放

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `f` | `number` | 缩放比 |
| `dst?` | [`Vector2`](Vector2) | - |

#### Returns

[`Vector2`](Vector2)

计算结果

___

### set

▸ **set**(`val`): [`Vector2`](Vector2)

拷贝目标向量的值到该向量

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `val` | [`Vector2`](Vector2) | 目标向量 |

#### Returns

[`Vector2`](Vector2)

自身

___

### setArray

▸ **setArray**(`value`, `offset?`): [`Vector2`](Vector2)

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `ArrayLike` |
| `offset?` | `number` |

#### Returns

[`Vector2`](Vector2)

___

### setValue

▸ **setValue**(`x`, `y`): [`Vector2`](Vector2)

设置向量的值

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | x值 |
| `y` | `number` | y值 |

#### Returns

[`Vector2`](Vector2)

自身

___

### sub

▸ **sub**(`v`, `dst?`): [`Vector2`](Vector2)

向量减法

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `v` | [`Vector2`](Vector2) | 目标向量 |
| `dst?` | [`Vector2`](Vector2) | - |

#### Returns

[`Vector2`](Vector2)

计算结果

___

### toArray

▸ **toArray**(): `number`[]

返回向量数据

**`memberof`** Vector2

#### Returns

`number`[]

矩阵数据，以JSArray返回

___

### createFromArray

▸ `Static` **createFromArray**(`array`): [`Vector2`](Vector2)

使用一个数组创建
此操作会拷贝一份数组

**`static`**

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `array` | `number`[] | 数据源，长度必须为2，否则会抛出异常 |

#### Returns

[`Vector2`](Vector2)

创建出来的向量

___

### createFromNumber

▸ `Static` **createFromNumber**(`x`, `y`): [`Vector2`](Vector2)

使用数值创建
推荐使用这种方式代替new Vector2

**`static`**

**`memberof`** Vector2

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | x |
| `y` | `number` | y |

#### Returns

[`Vector2`](Vector2)

创建出来的向量

___

### createFromTypedArray

▸ `Static` **createFromTypedArray**(`array`, `offset?`): [`Vector2`](Vector2)

使用某个已有的typedArray创建
此操作不会拷贝数据，而是在原来的内存区域上操作

**`static`**

**`memberof`** Vector2

#### Parameters

| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `array` | `Float32Array` | `undefined` | 数据源 |
| `offset` | `number` | `0` | - |

#### Returns

[`Vector2`](Vector2)

创建出来的向量
