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