Skip to content

@simversus/yjvis


@simversus/yjvis / math / Vec3

Class: Vec3

Defined in: math/vec3.ts:19

三维向量类

Extended by

Constructors

Constructor

new Vec3(x, y?, z?): Vec3

Defined in: math/vec3.ts:70

构造函数

Parameters

x

number = 0

x 分量,默认 0

y?

number

y 分量,默认 0

z?

number

z 分量,默认 0

Returns

Vec3

Properties

elements

elements: Number3

Defined in: math/vec3.ts:62

向量元素数组 [x, y, z]

Accessors

0

Get Signature

get 0(): number

Defined in: math/vec3.ts:129

x 分量 (索引 0)

Returns

number

Set Signature

set 0(v): void

Defined in: math/vec3.ts:143

Parameters
v

number

Returns

void


1

Get Signature

get 1(): number

Defined in: math/vec3.ts:134

y 分量 (索引 1)

Returns

number

Set Signature

set 1(v): void

Defined in: math/vec3.ts:147

Parameters
v

number

Returns

void


2

Get Signature

get 2(): number

Defined in: math/vec3.ts:139

z 分量 (索引 2)

Returns

number

Set Signature

set 2(v): void

Defined in: math/vec3.ts:151

Parameters
v

number

Returns

void


depth

Get Signature

get depth(): number

Defined in: math/vec3.ts:86

深度 (z 分量)

Returns

number

Set Signature

set depth(v): void

Defined in: math/vec3.ts:98

Parameters
v

number

Returns

void


height

Get Signature

get height(): number

Defined in: math/vec3.ts:81

高度 (y 分量)

Returns

number

Set Signature

set height(v): void

Defined in: math/vec3.ts:94

Parameters
v

number

Returns

void


width

Get Signature

get width(): number

Defined in: math/vec3.ts:76

宽度 (x 分量)

Returns

number

Set Signature

set width(v): void

Defined in: math/vec3.ts:90

Parameters
v

number

Returns

void


x

Get Signature

get x(): number

Defined in: math/vec3.ts:103

x 分量

Returns

number

Set Signature

set x(v): void

Defined in: math/vec3.ts:116

Parameters
v

number

Returns

void


y

Get Signature

get y(): number

Defined in: math/vec3.ts:108

y 分量

Returns

number

Set Signature

set y(v): void

Defined in: math/vec3.ts:120

Parameters
v

number

Returns

void


z

Get Signature

get z(): number

Defined in: math/vec3.ts:113

z 分量

Returns

number

Set Signature

set z(v): void

Defined in: math/vec3.ts:124

Parameters
v

number

Returns

void


unitX

Get Signature

get static unitX(): Vec3

Defined in: math/vec3.ts:40

单位 X 向量 (1, 0, 0)

Returns

Vec3


unitY

Get Signature

get static unitY(): Vec3

Defined in: math/vec3.ts:47

单位 Y 向量 (0, 1, 0)

Returns

Vec3


unitZ

Get Signature

get static unitZ(): Vec3

Defined in: math/vec3.ts:54

单位 Z 向量 (0, 0, 1)

Returns

Vec3

Methods

add()

add(va, vb?): Vec3

Defined in: math/vec3.ts:235

向量加法 如果传入 vb,则 this = va + vb 否则 this = this + va

Parameters

va

Vec3

加数 A

vb?

Vec3

加数 B (可选)

Returns

Vec3


addScaledVector()

addScaledVector(v, s): Vec3

Defined in: math/vec3.ts:246

加上缩放后的向量 (this = this + v * s)

Parameters

v

Vec3

向量

s

number

缩放系数

Returns

Vec3


addVectors()

addVectors(a, b): Vec3

Defined in: math/vec3.ts:359

向量相加 (this = a + b)

Parameters

a

Vec3

加数 A

b

Vec3

加数 B

Returns

Vec3


angleTo()

angleTo(v): number

Defined in: math/vec3.ts:550

计算与另一个向量的夹角 (弧度)

Parameters

v

Vec3

目标向量

Returns

number

夹角 (弧度)


applyMatrix3()

applyMatrix3(mat3): Vec3

Defined in: math/vec3.ts:505

应用 3x3 矩阵变换

Parameters

mat3

Mat3

3x3 矩阵

Returns

Vec3


applyMatrix4()

applyMatrix4(mat4): Vec3

Defined in: math/vec3.ts:496

应用 4x4 矩阵变换 (通常用于位置) 向量被视为点 (w=1)

Parameters

mat4

Mat4

4x4 矩阵

Returns

Vec3


applyNormalMatrix()

applyNormalMatrix(mat3): Vec3

Defined in: math/vec3.ts:514

应用法线矩阵变换 (并归一化)

Parameters

mat3

Mat3

法线矩阵

Returns

Vec3


applyQuaternion()

applyQuaternion(q): Vec3

Defined in: math/vec3.ts:523

应用四元数变换 (旋转)

Parameters

q

Quat

四元数

Returns

Vec3


clampScalar()

clampScalar(min, max): Vec3

Defined in: math/vec3.ts:335

限制向量分量范围

Parameters

min

number = Number.MIN_VALUE

最小值

max

number = Number.MAX_VALUE

最大值

Returns

Vec3


clone()

clone(): Vec3

Defined in: math/vec3.ts:224

克隆当前向量

Returns

Vec3


copy()

copy(v): Vec3

Defined in: math/vec3.ts:215

复制另一个向量

Parameters

v

Vec3

源向量

Returns

Vec3


cross()

cross(va, vb?): Vec3

Defined in: math/vec3.ts:445

叉积 如果传入 vb,则 this = va x vb 否则 this = this x va

Parameters

va

Vec3

向量 A

vb?

Vec3

向量 B (可选)

Returns

Vec3


distance()

distance(v): number

Defined in: math/vec3.ts:424

两个向量的距离 (等同于 distanceTo)

Parameters

v

Vec3

目标向量

Returns

number

距离


distanceTo()

distanceTo(v): number

Defined in: math/vec3.ts:371

两点之间的直线距离

Parameters

v

Vec3

目标点

Returns

number


distanceToSquared()

distanceToSquared(v): number

Defined in: math/vec3.ts:379

两点之间的直线距离的平方

Parameters

v

Vec3

目标点

Returns

number


divide()

divide(v): Vec3

Defined in: math/vec3.ts:283

向量分量相除 (this = this / v)

Parameters

v

Vec3

除数向量

Returns

Vec3


dot()

dot(v): number

Defined in: math/vec3.ts:456

点积

Parameters

v

Vec3

目标向量

Returns

number

点积结果


equals()

equals(v): boolean

Defined in: math/vec3.ts:474

判断向量是否相等

Parameters

v

Vec3

目标向量

Returns

boolean

是否相等


fromArray()

fromArray(array, offset): Vec3

Defined in: math/vec3.ts:483

从数组设置向量

Parameters

array

数组

number[] | TypedArray

offset

number = 0

偏移量

Returns

Vec3


fromBufferAttribute()

fromBufferAttribute(attribute, index): Vec3

Defined in: math/vec3.ts:182

从 BufferAttribute 读取数据

Parameters

attribute

BufferAttribute

BufferAttribute 实例

index

number

索引

Returns

Vec3


inverse()

inverse(v): Vec3

Defined in: math/vec3.ts:301

向量取倒数

Parameters

v

Vec3 = ...

结果向量,默认为 this

Returns

Vec3


length()

length(): number

Defined in: math/vec3.ts:407

向量长度

Returns

number

长度


lengthSq()

lengthSq(): number

Defined in: math/vec3.ts:415

向量长度的平方

Returns

number

长度平方


lerp()

lerp(end, t, start): Vec3

Defined in: math/vec3.ts:393

线性插值

Parameters

end

Vec3

结束向量

t

number

插值因子 [0, 1]

start

Vec3 = ...

开始向量,默认这是

Returns

Vec3


max()

max(v): Vec3

Defined in: math/vec3.ts:322

取最大值 (分量比较)

Parameters

v

Vec3

比较向量

Returns

Vec3


min()

min(v): Vec3

Defined in: math/vec3.ts:310

取最小值 (分量比较)

Parameters

v

Vec3

比较向量

Returns

Vec3


multiply()

multiply(va, vb?): Vec3

Defined in: math/vec3.ts:273

向量分量相乘 如果传入 vb,则 this = va * vb 否则 this = this * va

Parameters

va

Vec3

乘数向量 (或被乘数)

vb?

Vec3

乘数向量 (可选)

Returns

Vec3


multiplyScalar()

multiplyScalar(scalar): Vec3

Defined in: math/vec3.ts:346

乘以标量

Parameters

scalar

number

标量

Returns

Vec3


negate()

negate(v): Vec3

Defined in: math/vec3.ts:433

向量取反

Parameters

v

Vec3 = ...

结果向量,默认为 this

Returns

Vec3

this


normalize()

normalize(v): Vec3

Defined in: math/vec3.ts:464

归一化 (转换为单位向量)

Parameters

v

Vec3 = ...

结果向量,默认为 this

Returns

Vec3


projectOnPlane()

projectOnPlane(normal): Vec3

Defined in: math/vec3.ts:573

投影到平面上 (减去在法线方向上的分量)

Parameters

normal

Vec3

平面法线 (必须是单位向量)

Returns

Vec3


projectOnVector()

projectOnVector(v): Vec3

Defined in: math/vec3.ts:562

投影到另一个向量上

Parameters

v

Vec3

目标向量

Returns

Vec3

this


scale()

scale(v): Vec3

Defined in: math/vec3.ts:292

向量缩放 (this = this * v)

Parameters

v

number

缩放系数

Returns

Vec3


set()

set(x, y, z): Vec3

Defined in: math/vec3.ts:196

设置向量的值

Parameters

x

x 分量或数组

number | [number, number, number]

y

y 分量

number | [number, number, number]

z

z 分量

number | [number, number, number]

Returns

Vec3


setFromMatrixPosition()

setFromMatrixPosition(mat4): Vec3

Defined in: math/vec3.ts:206

从矩阵获取位置信息 (平移分量)

Parameters

mat4

Mat4

4x4 矩阵

Returns

Vec3


sub()

sub(va, vb?): Vec3

Defined in: math/vec3.ts:260

向量减法 如果传入 vb,则 this = va - vb 否则 this = this - va

Parameters

va

Vec3

被减向量 (或减向量)

vb?

Vec3

减向量 (可选)

Returns

Vec3


toArray()

toArray(array, offset): number[] | TypedArray

Defined in: math/vec3.ts:170

转换为数组

Parameters

array

目标数组

number[] | TypedArray

offset

number = 0

偏移量

Returns

number[] | TypedArray


transformDirection()

transformDirection(mat4): Vec3

Defined in: math/vec3.ts:533

变换方向向量 (忽略平移,应用旋转和缩放,并归一化) 向量被视为方向 (w=0)

Parameters

mat4

Mat4

4x4 矩阵

Returns

Vec3


unproject()

unproject(camera): Vec3

Defined in: math/vec3.ts:582

反投影 (屏幕空间 -> 世界空间)

Parameters

camera

Camera

相机

Returns

Vec3


copy()

static copy(v): Vec3

Defined in: math/vec3.ts:159

静态方法,复制一个 Vec3

Parameters

v

Vec3

源向量

Returns

Vec3


create()

static create(x, y?, z?): Vec3

Defined in: math/vec3.ts:26

创建一个新的 Vec3 实例

Parameters

x

number = 0

x 分量

y?

number

y 分量

z?

number

z 分量

Returns

Vec3


random()

static random(): Vec3

Defined in: math/vec3.ts:33

创建一个随机向量,各分量在 [0, 1) 之间

Returns

Vec3