Skip to content
Vector

基础类型 / Vector

Vector Class

三维向量


由分量 (x,y,z) 组成的三维空间中的向量

Table of contents

Properties

x: number
X轴坐标
y: number
Y轴坐标
z: number
Z轴坐标

Accessors

length(): number
向量的长度
magnitude(a: Vector): number
向量长度
negative(): Vector
获取各个分量取反的新向量
normalized(): Vector
获取一个归一化的新向量, 不影响本向量
sqrLength(): number
向量的长度平方
sqrMagnitude(a: Vector): number
向量长度平方
back(): Vector
Vector(-1, 0, 0)
down(): Vector
Vector(0, 0, -1)
forward(): Vector
Vector(1, 0, 0)
left(): Vector
Vector(0, -1, 0)
negOne(): Vector
Vector(-1, -1, -1)
one(): Vector
Vector(1, 1, 1)
right(): Vector
Vector(0, 1, 0)
unitX(): Vector
Vector(1, 0, 0)
unitY(): Vector
Vector(0, 1, 0)
unitZ(): Vector
Vector(0, 0, 1)
up(): Vector
Vector(0, 0, 1)
zero(): Vector
Vector(0, 0, 0)

Methods

add(a: Vector, b: Vector, outer?: Vector): Vector
两个向量相加
clone(a: Vector): Vector
克隆向量 a 得到新的 Vector 向量
divide(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 的每个分量除以标量 b
equals(a: Vector, b: Vector, epsilon?: number): boolean
判断两向量排除浮点数误差是否近似等价
fromString(str: string, outer?: Vector): Vector
通过一个字符串创建 Vector
multiply(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 的每个分量乘以标量 b
normalize(a: Vector, outer?: Vector): Vector
向量归一化
set(outer: Vector, x: number, y: number, z: number): Vector
设置向量的值
strictEquals(a: Vector, b: Vector): boolean
判断向量是否相等
subtract(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 减去向量 b
toRotation(): Rotation
转换为对应的 Rotation
toString(): string
输出为字符串
add(a: Vector, b: Vector, outer?: Vector): Vector
两个向量相加
angle(a: Vector, b: Vector): number
向量 a 与向量 b 在 XY 平面投影的夹角角度
angle3D(a: Vector, b: Vector): number
向量 a 与向量 b 的夹角角度
ceil(a: Vector, outer?: Vector): Vector
向量 a 每个元素向上取整
clamp(value: Vector, minInclusive: Vector, maxInclusive: Vector): Vector
设置当前向量的值,使其各个分量都处于指定的范围内
clone(a: Vector): Vector
克隆向量 a 得到新的 Vector 向量
copy(a: Vector, outer: Vector): Vector
获得指定向量的拷贝
cross(a: Vector, b: Vector, outer?: Vector): Vector
叉积
distance(a: Vector, b: Vector): number
两向量的欧氏距离
divide(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 的每个分量除以标量 b
dot(a: Vector, b: Vector): number
点积
equals(a: Vector, b: Vector, epsilon?: number): boolean
判断两向量排除浮点数误差是否近似等价
floor(a: Vector, outer?: Vector): Vector
向量 a 每个元素向下取整
fromString(str: string, outer?: Vector): Vector
通过一个字符串创建 Vector
invert(a: Vector, outer?: Vector): Vector
向量 a 每个元素取倒数,接近 0 时返回 Infinity
invertSafe(a: Vector, outer?: Vector, epsilon?: number): Vector
向量 a 每个元素取倒数,接近 0 时返回 0
lerp(a: Vector, b: Vector, t: number, outer?: Vector): Vector
向量 a 每个元素线性插值: a + t * (b - a)
magnitude(a: Vector): number
向量长度
max(a: Vector, b: Vector, outer?: Vector): Vector
取两个向量对应x、y元素最小值最大值
min(a: Vector, b: Vector, outer?: Vector): Vector
取两个向量对应x、y元素最小值
moveTowards(current: Vector, target: Vector, maxDistanceDelta: number, outer?: Vector): Vector
向目标向量移动
multiply(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 的每个分量乘以标量 b
negate(a: Vector, outer?: Vector): Vector
向量 a 每个元素取负
normalize(a: Vector, outer?: Vector): Vector
向量归一化
project(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 在指定向量上的投影
projectOnPlane(a: Vector, n: Vector, outer?: Vector): Vector
向量 a 在指定平面上的投影
reflect(inDirection: Vector, inNormal: Vector, outer?: Vector): Vector
反射
rotateX(v: Vector, o: Vector, a: number, outer?: Vector): Vector
绕 X 轴旋转指定弧度
rotateY(v: Vector, o: Vector, a: number, outer?: Vector): Vector
绕 Y 轴旋转指定弧度
rotateZ(v: Vector, o: Vector, a: number, outer?: Vector): Vector
绕 Z 轴旋转指定弧度
round(a: Vector, outer?: Vector): Vector
每个元素四舍五入取整
set(outer: Vector, x: number, y: number, z: number): Vector
设置向量的值
sqrMagnitude(a: Vector): number
向量长度平方
squaredDistance(a: Vector, b: Vector): number
两向量的欧氏距离平方
strictEquals(a: Vector, b: Vector): boolean
判断向量是否相等
subtract(a: Vector, b: Vector, outer?: Vector): Vector
向量 a 减去向量 b

用给定的 x, y 和 z 分量构建一个新的 Vector

Parameters

x? numberx分量 default:0 range: 不做限制 type: 浮点数
y? numbery分量 default:0 range: 不做限制 type: 浮点数
z? numberz分量 default:0 range: 不做限制 type: 浮点数

new Vector(f)

用给定的 f 值设定给 x, y 和 z

Parameters

f number给定的 f 值 range: 不做限制 type: 浮点数

new Vector(v)

用给定的 Vector 的值的 x, y 和 z 分量设定给x,y 和 z

Parameters

v Vector给定的 Vector

Properties

x

x: number

X轴坐标


y

y: number

Y轴坐标


z

z: number

Z轴坐标

Accessors

length

get length(): number

向量的长度

Returns

number

magnitude

get magnitude(): number

向量的长度

Parameters

a Vector向量 a

Returns

number向量长度

negative

get negative(): Vector

获取各个分量取反的新向量

Returns

Vector

normalized

get normalized(): Vector

获取一个归一化的新向量, 不影响本向量

Returns

Vector

sqrLength

get sqrLength(): number

向量的长度平方

Returns

number

sqrMagnitude

get sqrMagnitude(): number

向量的长度平方

Parameters

a Vector向量 a

Returns

number向量长度平方

back

Static get back(): Vector

Vector(-1, 0, 0)

Returns

Vector

down

Static get down(): Vector

Vector(0, 0, -1)

Returns

Vector

forward

Static get forward(): Vector

Vector(1, 0, 0)

Returns

Vector

left

Static get left(): Vector

Vector(0, -1, 0)

Returns

Vector

negOne

Static get negOne(): Vector

Vector(-1, -1, -1)

Returns

Vector

one

Static get one(): Vector

Vector(1, 1, 1)

Returns

Vector

Static get right(): Vector

Vector(0, 1, 0)

Returns

Vector

unitX

Static get unitX(): Vector

Vector(1, 0, 0)

Returns

Vector

unitY

Static get unitY(): Vector

Vector(0, 1, 0)

Returns

Vector

unitZ

Static get unitZ(): Vector

Vector(0, 0, 1)

Returns

Vector

up

Static get up(): Vector

Vector(0, 0, 1)

Returns

Vector

zero

Static get zero(): Vector

Vector(0, 0, 0)

Returns

Vector

Methods

add

add(v): Vector

加一个向量

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相加的结果 Vector 对象

Parameters

v Vector相加的向量对象

clone

clone(): Vector

克隆当前向量

Parameters

a Vector向量 a

Returns

Vector克隆得到的新 Vector 对象

divide

divide(v): Vector

除以一个标量

Parameters

a Vector向量 a
b number向量 b
range: 不限制 type:浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相除的结果 Vector 对象

Static divide(a, b, outer?): Vector

向量 a 除以向量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
range: 不限制 type:浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相除的结果 Vector 对象

Parameters

v number每个分量除以的参数 range: 不做限制 type:浮点值
判断当前向量是否在误差范围内与指定向量相等

Precautions

当两个向量的分量在指定的误差范围内相等时, 返回 true, 否则返回 false

Parameters

other Vector指定的向量
epsilon? number最小误差数 default:MathUtil.EPSILON
range: 建议传入小于 1 的值。 type:浮点数

Returns

boolean当前向量是否在误差范围内与指定向量相等

fromString

fromString(str): void

读取字符串数据

Parameters

str string待转化的 string range:"0.000000,0.000000,0.000000"
outer? Vector接收结果的向量对象 default:null

Returns

Vector转化后的 Vector 对象

Parameters

str string读取的字符 range:"0.000000,0.000000,0.000000"

multiply

multiply(v): Vector

乘以一个向量

Parameters

a Vector向量 a
b number标量 b range:不做限制 type: 浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相乘的结果 Vector 对象

Static multiply(a, b, outer?): Vector

向量 a 乘以向量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相乘的结果 Vector 对象

Parameters

v Vector相乘的向量对象
当前向量归一化

Returns

Vector归一化后的向量

set

set(other): Vector

设置当前向量使其与指定向量相等

Parameters

outer Vector被设置的向量对象
x numberx 分量 range:不做限制 type: 浮点数
y numbery 分量 range:不做限制 type: 浮点数
z numberz 分量 range:不做限制 type: 浮点数

Returns

Vector被设置的 Vector 对象

set(x?, y?, z?): Vector

设置当前向量的具体分量值

Parameters

x? numberx 分量 default:0 range: 不做限制 type: 浮点数
y? numbery 分量 default:0 range: 不做限制 type: 浮点数
z? numberz 分量 default:0 range: 不做限制 type: 浮点数

Returns

Vector修改后的自身对象

strictEquals

strictEquals(other): boolean

判断当前向量是否与指定向量相等

Parameters

a Vector向量 a
b Vector向量 b

Returns

boolean两向量是否相等

| boolean 当前向量是否与指定向量相等 | | :------ | :------ |


subtract

subtract(v): Vector

减去一个向量

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相减的结果 Vector 对象

Parameters

v Vector相减的向量对象

toRotation

toRotation(): Rotation

转换为对应的 Rotation

Returns

Rotation新的对应的Rotation对象

toString

toString(): string

输出为字符串

Returns

string向量值字符串

add

Static add(a, b, outer?): Vector

两个向量相加

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相加的结果 Vector 对象

angle

Static angle(a, b): number

向量 a 与向量 b 在 XY 平面投影的夹角角度

Parameters

a Vector向量 a
b Vector向量 b

Returns

number夹角角度

angle3D

Static angle3D(a, b): number

向量 a 与向量 b 的夹角角度

Parameters

a Vector向量 a
b Vector向量 b

Returns

number夹角角度

ceil

Static ceil(a, outer?): Vector

向量 a 每个元素向上取整

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素向上取整的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


clamp

Static clamp(value, minInclusive, maxInclusive): Vector

设置当前向量的值,使其各个分量都处于指定的范围内

Parameters

value Vector当前向量的值
minInclusive Vector允许的最小值
maxInclusive Vector允许的最大值

Returns

Vector各个分量都处于指定的范围内的向量

clone

Static clone(a): Vector

克隆向量 a 得到新的 Vector 向量

Parameters

a Vector向量 a

Returns

Vector克隆得到的新 Vector 对象

copy

Static copy(a, outer): Vector

获得指定向量的拷贝

Parameters

a Vector目标向量
outer Vector接收结果的向量 default:null

Returns

Vector克隆得到的新 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


cross

Static cross(a, b, outer?): Vector

叉积

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量 default:null

Returns

Vector叉积 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


distance

Static distance(a, b): number

两向量的欧氏距离

Parameters

a Vector向量 a
b Vector向量 b

Returns

number欧氏距离

divide

Static divide(a, b, outer?): Vector

向量 a 的每个分量除以标量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b number向量 b
range: 不限制 type:浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相除的结果 Vector 对象

Static divide(a, b, outer?): Vector

向量 a 除以向量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
range: 不限制 type:浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相除的结果 Vector 对象

dot

Static dot(a, b): number

点积

Parameters

a Vector向量 a
b Vector向量 b

Returns

number点积

equals

Static equals(a, b, epsilon?): boolean

判断两向量排除浮点数误差是否近似等价

Parameters

a Vector向量 a
b Vector向量 b
epsilon? number最小误差数 default:MathDefine.EPSILON
range: 建议传入小于 1 的值。 type:浮点数

Returns

boolean是否等价

floor

Static floor(a, outer?): Vector

向量 a 每个元素向下取整

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素向下取整的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


fromString

Static fromString(str, outer?): Vector

通过一个字符串创建 Vector

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

str string待转化的 string range:"0.000000,0.000000,0.000000"
outer? Vector接收结果的向量对象 default:null

Returns

Vector转化后的 Vector 对象

invert

Static invert(a, outer?): Vector

向量 a 每个元素取倒数,接近 0 时返回 Infinity

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素取倒数后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


invertSafe

Static invertSafe(a, outer?, epsilon?): Vector

向量 a 每个元素取倒数,接近 0 时返回 0

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null
epsilon? number最小误差数 default:MathUtil.EPSILON
range: 建议传入小于 1 的值。 type:浮点数

Returns

Vector逐元素取倒数后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


lerp

Static lerp(a, b, t, outer?): Vector

向量 a 每个元素线性插值: a + t * (b - a)

Parameters

a Vector向量 a
b Vector向量 b
t number插值
range: [0, 1] type:浮点数
outer? Vector接收结果的向量 default:null

Returns

Vector线性插值得到的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


magnitude

Static magnitude(a): number

向量长度

Parameters

a Vector向量 a

Returns

number向量长度

max

Static max(a, b, outer?): Vector

取两个向量对应x、y元素最小值最大值

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素取最大值的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


min

Static min(a, b, outer?): Vector

取两个向量对应x、y元素最小值

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素取最小值后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


moveTowards

Static moveTowards(current, target, maxDistanceDelta, outer?): Vector

向目标向量移动

Parameters

current Vector当前向量
target Vector目标向量
maxDistanceDelta number最大移动分量
range: 不限制 type:浮点数
outer? Vector接收结果的 Vector 对象 default:null

Returns

Vector移动后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


multiply

Static multiply(a, b, outer?): Vector

向量 a 的每个分量乘以标量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b number标量 b range:不做限制 type: 浮点数
outer? Vector接收结果的向量对象 default:null

Returns

Vector相乘的结果 Vector 对象

Static multiply(a, b, outer?): Vector

向量 a 乘以向量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相乘的结果 Vector 对象

negate

Static negate(a, outer?): Vector

向量 a 每个元素取负

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素取负后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


normalize

Static normalize(a, outer?): Vector

向量归一化

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector归一化后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


project

Static project(a, b, outer?): Vector

向量 a 在指定向量上的投影

Parameters

a Vector向量 a
b Vector指定平面的法线
outer? Vector接收投影的向量对象 default:null

Returns

Vector向量a在指定向量上的投影

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


projectOnPlane

Static projectOnPlane(a, n, outer?): Vector

向量 a 在指定平面上的投影

Parameters

a Vector向量 a
n Vector指定平面的法线
outer? Vector接收结果的向量 default:null

Returns

Vector向量a在指定平面上的投影

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


reflect

Static reflect(inDirection, inNormal, outer?): Vector

反射

Parameters

inDirection Vector入射向量角度
inNormal Vector法线向量
outer? Vector接收结果的向量 default:null

Returns

Vector反射

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


rotateX

Static rotateX(v, o, a, outer?): Vector

绕 X 轴旋转指定弧度

Parameters

v Vector旋转向量
o Vector旋转中心
a number旋转弧度 range: 不做限制 type: 浮点数
outer? Vector接收结果的向量 default:null

Returns

Vector绕 X 轴旋转指定弧度后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


rotateY

Static rotateY(v, o, a, outer?): Vector

绕 Y 轴旋转指定弧度

Parameters

v Vector旋转矢量
o Vector旋转中心
a number旋转弧度 range: 不做限制 type: 浮点数
outer? Vector接收结果的向量 default:null

Returns

Vector绕 Y 轴旋转指定弧度后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


rotateZ

Static rotateZ(v, o, a, outer?): Vector

绕 Z 轴旋转指定弧度

Parameters

v Vector旋转矢量
o Vector旋转中心
a number旋转弧度 range: 不做限制 type: 浮点数
outer? Vector接收结果的向量 default:null

Returns

Vector绕 Z 轴旋转指定弧度后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


round

Static round(a, outer?): Vector

每个元素四舍五入取整

Parameters

a Vector向量 a
outer? Vector接收结果的向量 default:null

Returns

Vector逐元素四舍五入取整后的 Vector 对象

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)


set

Static set(outer, x, y, z): Vector

设置向量的值

Parameters

outer Vector被设置的向量对象
x numberx 分量 range:不做限制 type: 浮点数
y numbery 分量 range:不做限制 type: 浮点数
z numberz 分量 range:不做限制 type: 浮点数

Returns

Vector被设置的 Vector 对象

sqrMagnitude

Static sqrMagnitude(a): number

向量长度平方

Parameters

a Vector向量 a

Returns

number向量长度平方

squaredDistance

Static squaredDistance(a, b): number

两向量的欧氏距离平方

Parameters

a Vector向量 a
b Vector向量 b

Returns

number欧氏距离平方

strictEquals

Static strictEquals(a, b): boolean

判断向量是否相等

Parameters

a Vector向量 a
b Vector向量 b

Returns

boolean两向量是否相等

subtract

Static subtract(a, b, outer?): Vector

向量 a 减去向量 b

outer 为可选参数。作用是:当传入 outer,计算结果会赋值给 outer。(传入的 outer 向量不能为 null/undefined)

Parameters

a Vector向量 a
b Vector向量 b
outer? Vector接收结果的向量对象 default:null

Returns

Vector相减的结果 Vector 对象