Vector3

Vector3

用于存储(x,y,z)矢量表示的分类Vector3是三维几何体中使用的主要对象它可以表示空间中某个点的坐标,也可以表示方向提醒:js使用左手系前向系统

Members

x : number

第一个坐标(在X轴上)

y : number

第二个坐标(在Y轴上)

z : number

第三个坐标(在Z轴上)

readonly isNonUniform : boolean

获取一个布尔值,该布尔值指示向量是非一致的,表示x、y或z不完全相同

staticreadonly UpReadOnly : DeepImmutable<Vector3>

获取一个不能更新的向上Vector3

Methods

constructor(x,y,z)

从给定的x、y、z(浮点数)坐标创建新的Vector3对象。
Name Type Description
x number optional第一个坐标(在x轴上)
y number optional第二个坐标(在y轴上)
z number optional第三个坐标(在z轴上)

toString() → string

创建矢量的字符串表示形式3@returns 返回一个带Vector3坐标的字符串。

getClassName() → string

获取类名@returns 返回字符串“Vector3”

getHashCode() → number

创建Vector3哈希代码@returns 返回一个在Vector3实例之间趋于唯一的数字

asArray() → number[]

创建包含三个元素的数组:矢量的坐标3@returns 返回一个新的数字数组

toArray(array,index) → Vector3

使用Vector3的连续坐标填充给定数组或给定索引中的Float32Array
Name Type Description
array FloatArray 目标数组
index number optional目标数组中的偏移量

toQuaternion() → Quaternion

将当前Vector3转换为四元数(考虑到Vector3包含旋转的Euler角表示)@returns 返回一个新的四元数对象,由Vector3坐标计算得出

addInPlace(otherVector) → Vector3

将给定向量添加到当前Vector3
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

addInPlaceFromFloats(x,y,z) → Vector3

将给定坐标添加到当前Vector3
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

add(otherVector) → Vector3

获取新Vector3,即当前Vector3与给定向量相加的结果
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

addToRef(otherVector,result) → Vector3

将当前Vector3添加到给定向量,并将结果存储在向量“result”中
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数
result Vector3 用于存储结果的Vector3对象

subtractInPlace(otherVector) → Vector3

从当前矢量中减去给定Vector3
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

subtract(otherVector) → Vector3

返回新Vector3,即给定矢量与当前Vector3相减的结果
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

subtractToRef(otherVector,result) → Vector3

从当前Vector3中减去给定矢量,并将结果存储在矢量“result”中。
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数
result Vector3 用于存储结果的Vector3对象

subtractFromFloats(x,y,z) → Vector3

返回一个新的Vector3集合,并从当前Vector3坐标减去给定的浮点值
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

subtractFromFloatsToRef(x,y,z,result) → Vector3

从当前Vector3坐标中减去给定的浮点值,并使用此结果设置给定的向量“result”
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标
result Vector3 用于存储结果的Vector3对象

negate() → Vector3

获取一个新的Vector3集合,该集合具有当前Vector3求反的坐标@returns 返回一个新Vector3

scaleInPlace(scale) → Vector3

将Vector3坐标乘以浮点“比例”
Name Type Description
scale number 乘数因子

scale(scale) → Vector3

返回一个新的Vector3集合,当前Vector3坐标乘以浮点“比例”
Name Type Description
scale number 乘数因子

scaleToRef(scale,result) → Vector3

将当前Vector3坐标乘以浮点“比例”,并将结果存储在给定的矢量“result”坐标中
Name Type Description
scale number 乘数因子
result Vector3 用于存储结果的Vector3对象

scaleAndAddToRef(scale,result) → Vector3

按因子缩放当前Vector3值,并将结果添加到给定Vector3
Name Type Description
scale number 比例因子
result Vector3 用于存储结果的Vector3对象

equals(otherVector) → boolean

如果当前Vector3和给定矢量坐标严格相等,则返回true
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

equalsWithEpsilon(otherVector,epsilon) → boolean

如果当前Vector3和给定矢量坐标的距离小于epsilon,则返回true
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数
epsilon number optional值为相等的最小距离

equalsToFloats(x,y,z) → boolean

如果当前Vector3坐标等于给定的浮点值,则返回true
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

multiplyInPlace(otherVector) → Vector3

将当前Vector3坐标乘以给定坐标
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

multiply(otherVector) → Vector3

返回一个新Vector3,即当前Vector3与给定矢量相乘的结果
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

multiplyToRef(otherVector,result) → Vector3

将当前Vector3乘以给定向量,并将结果存储在给定向量“result”中
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数
result Vector3 用于存储结果的Vector3对象

multiplyByFloats(x,y,z) → Vector3

返回一个新的Vector3集合,该集合包含当前Vector3坐标按给定浮点数进行mulliplication的结果
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

divide(otherVector) → Vector3

返回一个新的Vector3集合,其中包含当前Vector3坐标除以给定坐标的结果
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数

divideToRef(otherVector,result) → Vector3

将当前Vector3坐标除以给定坐标,并将结果存储在给定矢量“result”中
Name Type Description
otherVector DeepImmutable<Vector3> 第二个操作数
result Vector3 用于存储结果的Vector3对象

divideInPlace(otherVector) → Vector3

将当前Vector3坐标除以给定坐标。
Name Type Description
otherVector Vector3 第二个操作数

minimizeInPlace(other) → Vector3

使用其与给定矢量之间的最小坐标值更新当前Vector3
Name Type Description
other DeepImmutable<Vector3> 第二个操作数

maximizeInPlace(other) → Vector3

使用其与给定矢量之间的最大坐标值更新当前Vector3。
Name Type Description
other DeepImmutable<Vector3> 第二个操作数

minimizeInPlaceFromFloats(x,y,z) → Vector3

使用其与给定坐标之间的最小坐标值更新当前Vector3
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

maximizeInPlaceFromFloats(x,y,z) → Vector3

使用其与给定坐标之间的最大坐标值更新当前Vector3。
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

isNonUniformWithinEpsilon(epsilon) → boolean

由于浮点精度,网格的比例可能是均匀的,但浮点值会偏离一小部分检查是否在一定小数位数内不一致,以说明这一点
Name Type Description
epsilon number 值可以不同的量

floor() → Vector3

从当前Vector3地板值获取新Vector3@returns 返回一个新Vector3

fract() → Vector3

从当前Vector3地板值获取新Vector3@returns 返回一个新Vector3

length() → number

获取Vector3的长度@returns 返回向量的长度3

lengthSquared() → number

获取Vector3的平方长度@returns 返回向量的平方长度3

normalize() → Vector3

规范化当前Vector3。请注意,这是一个就地操作。@returns 返回当前更新的Vector3

reorderInPlace(order) → this

对向量的x y z特性重新排序
Name Type Description
order string 属性的新排序(例如,对于带有“ZYX”的向量1,2,3,将产生3,2,1)

rotateByQuaternionToRef(quaternion,result) → Vector3

按四元数围绕0,0,0旋转向量
Name Type Description
quaternion Quaternion 转四元数
result Vector3 vector来存储结果

rotateByQuaternionAroundPointToRef(quaternion,point,result) → Vector3

围绕给定点旋转向量
Name Type Description
quaternion Quaternion 旋转四元数
point Vector3 要旋转的点
result Vector3 vector来存储结果

normalizeFromLength(len) → Vector3

使用给定的输入长度规范化当前Vector3。请注意,这是一个就地操作。
Name Type Description
len number 向量的长度

normalizeToNew() → Vector3

将当前Vector3规范化为新矢量@returns 返回新Vector3

normalizeToRef(reference) → Vector3

将当前Vector3规范化为参考
Name Type Description
reference DeepImmutable<Vector3> 要更新的Vector3

clone() → Vector3

创建从当前Vector3复制的新Vector3@returns 返回新Vector3

copyFrom(source) → Vector3

将给定的矢量坐标复制到当前Vector3
Name Type Description
source DeepImmutable<Vector3> 源Vector3

copyFromFloats(x,y,z) → Vector3

将给定的浮点数复制到当前Vector3坐标
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

set(x,y,z) → Vector3

将给定的浮点数复制到当前Vector3坐标
Name Type Description
x number 操作数的x坐标
y number 操作数的y坐标
z number 操作数的z坐标

setAll(v) → Vector3

将给定的浮点复制到当前Vector3坐标
Name Type Description
v number 操作数的x、y和z坐标

staticGetClipFactor(vector0,vector1,axis,size) → number

获取两个向量之间的剪辑因子
Name Type Description
vector0 DeepImmutable<Vector3> 第一个操作数
vector1 DeepImmutable<Vector3> 第二个操作数
axis DeepImmutable<Vector3>
size number 沿轴的大小

staticGetAngleBetweenVectors(vector0,vector1,normal) → number

获取两个向量之间的角度
Name Type Description
vector0 DeepImmutable<Vector3> 矢量0和矢量1之间的角度
vector1 DeepImmutable<Vector3> 矢量0和矢量1之间的角度
normal DeepImmutable<Vector3> 法线方向

staticFromArray(array,offset) → Vector3

从给定数组的索引“偏移量”返回新的Vector3集
Name Type Description
array DeepImmutable<ArrayLike<number>> 源数组
offset number optional源数组中的偏移量

staticFromFloatArray(array,offset) → Vector3

从给定数组的索引“偏移量”返回新的Vector3集此函数已弃用。改用FromArray
Name Type Description
array DeepImmutable<Float32Array> 源数组
offset number optional源数组中的偏移量

staticFromArrayToRef(array,offset,result)

使用给定数组索引“offset”中的元素值设置给定向量“result”
Name Type Description
array DeepImmutable<ArrayLike<number>> 源数组
offset number 源数组中的偏移量
result Vector3 用于存储结果的Vector3

staticFromFloatArrayToRef(array,offset,result)

使用给定数组索引“offset”中的元素值设置给定向量“result”此函数已弃用。改用FromArrayToRef。
Name Type Description
array DeepImmutable<Float32Array> 源数组
offset number 源数组中的偏移量
result Vector3 用于存储结果的Vector3

staticFromFloatsToRef(x,y,z,result)

使用给定的浮点值设置给定的向量“result”。
Name Type Description
x number 源的x坐标
y number 源的y坐标
z number 源的z坐标
result Vector3 用于存储结果的Vector3

staticZero() → Vector3

将新Vector3设置为(0.0、0.0、0.0)@returns 返回一个新的空Vector3

staticOne() → Vector3

将新Vector3设置为(1.0、1.0、1.0)@returns 返回一个新的单位Vector3

staticUp() → Vector3

将新Vector3设置为(0.0、1.0、0.0)@returns 返回一个新的向上Vector3

staticDown() → Vector3

将新Vector3设置为(0.0,-1.0,0.0)@returns 返回一个新的向下Vector3

staticForward() → Vector3

将新Vector3设置为(0.0、0.0、1.0)@returns 返回一个新的前向Vector3

staticBackward() → Vector3

将新Vector3设置为(0.0,0.0,-1.0)@returns 返回一个新的前向Vector3

staticRight() → Vector3

将新Vector3设置为(1.0、0.0、0.0)@returns 返回一个新的右Vector3

staticLeft() → Vector3

将新Vector3设置为(-1.0,0.0,0.0)@returns 返回一个新的左Vector3

staticTransformCoordinates(vector,transformation) → Vector3

返回一个新的Vector3集合,其中包含给定向量的给定矩阵的变换结果。此方法仅计算变换后的坐标,而不计算变换后的方向向量(即,它考虑了平移)
Name Type Description
vector DeepImmutable<Vector3> Vector3
transformation DeepImmutable<Matrix> 转换矩阵

staticTransformCoordinatesToRef(vector,transformation,result)

设置给定向量“result”坐标与给定向量的给定矩阵的变换结果此方法仅计算变换后的坐标,而不计算变换后的方向向量(即,它考虑了平移)
Name Type Description
vector DeepImmutable<Vector3> Vector3
transformation DeepImmutable<Matrix> 转换矩阵
result Vector3 用于存储结果的Vector3

staticTransformCoordinatesFromFloatsToRef(x,y,z,transformation,result)

通过给定浮点(x,y,z)的给定矩阵将给定向量“result”坐标与变换结果一起设置此方法仅计算变换后的坐标,而不计算变换后的方向向量
Name Type Description
x number 源向量的x坐标
y number 源向量的y坐标
z number 源向量的z坐标
transformation DeepImmutable<Matrix> 转换矩阵
result Vector3 用于存储结果的Vector3

staticTransformNormal(vector,transformation) → Vector3

返回一个新的Vector3集合,其中包含给定向量的给定矩阵的法线变换结果此方法仅计算变换的规范化方向向量(即,不应用平移)
Name Type Description
vector DeepImmutable<Vector3> Vector3
transformation DeepImmutable<Matrix> 转换矩阵

staticTransformNormalToRef(vector,transformation,result)

通过给定向量的给定矩阵将给定向量的“result”与法线变换的结果进行设置此方法仅计算变换的规范化方向向量(即,不应用平移)
Name Type Description
vector DeepImmutable<Vector3> Vector3
transformation DeepImmutable<Matrix> 转换矩阵
result Vector3 用于存储结果的Vector3

staticTransformNormalFromFloatsToRef(x,y,z,transformation,result)

通过给定浮点数(x,y,z)的给定矩阵将给定向量“result”与法线变换的结果一起设置此方法仅计算变换的规范化方向向量(即,不应用平移)
Name Type Description
x number 源向量的x坐标
y number 源向量的y坐标
z number 源向量的z坐标
transformation DeepImmutable<Matrix> 转换矩阵
result Vector3 用于存储结果的Vector3

staticCatmullRom(value1,value2,value3,value4,amount) → Vector3

返回位于CatmullRom插值样条线上由向量“value1”、“value2”、“value3”、“value4” 的“amount”的新Vector3
Name Type Description
value1 DeepImmutable<Vector3> 第一个控制点
value2 DeepImmutable<Vector3> 第二个控制点
value3 DeepImmutable<Vector3> 第三个控制点
value4 DeepImmutable<Vector3> 第四个控制点
amount number 样条曲线上量

staticClamp(value,min,max) → Vector3

如果向量“value”位于由向量“min”和“max” 的多维数据集中,则返回坐标为“value”的新向量集3如果“值”的坐标值低于“最小”坐标之一,则该“值”坐标设置为“最小”坐标如果“值”的坐标值大于“最大”坐标之一,则该“值”坐标将设置为“最大”坐标
Name Type Description
value DeepImmutable<Vector3> 当前值
min DeepImmutable<Vector3> 较低的范围值
max DeepImmutable<Vector3> 上限范围值

staticClampToRef(value,min,max,result)

如果向量“值”位于由向量“min”和“max” 的立方体中,则使用坐标“value”设置给定向量“result”如果“值”的坐标值低于“最小”坐标之一,则该“值”坐标设置为“最小”坐标如果“值”的坐标值大于“最大”坐标之一,则该“值”坐标将设置为“最大”坐标
Name Type Description
value DeepImmutable<Vector3> 当前值
min DeepImmutable<Vector3> 较低的范围值
max DeepImmutable<Vector3> 上限范围值
result Vector3 用于存储结果的Vector3

staticHermite(value1,tangent1,value2,tangent2,amount) → Vector3

返回一个新的Vector3,该向量位于由向量“value1”、“切线1”、“value2”、“切线2” 的Hermite插值样条线上的“amount”(float)
Name Type Description
value1 DeepImmutable<Vector3> 第一个控制点
value2 DeepImmutable<Vector3> 第二个控制点
amount number 插值样条曲线上的量(介于0和1之间)

staticLerp(start,end,amount) → Vector3

返回位于向量“开始”和“结束”之间的线性插值上的“数量”(浮点)的新Vector3
Name Type Description
start DeepImmutable<Vector3> 起始值
end DeepImmutable<Vector3> 结束值
amount number max 两者之间的金额(介于0和1之间)

staticLerpToRef(start,end,amount,result)

将给定向量“result”设置为从“数量”的向量“开始”到向量“结束”的线性插值结果
Name Type Description
start DeepImmutable<Vector3> 起始值
end DeepImmutable<Vector3> 结束值
amount number max 两者之间的金额(介于0和1之间)
result Vector3 用于存储结果的Vector3

staticDot(left,right) → number

返回向量“left”和“right”之间的点积(float)
Name Type Description
left DeepImmutable<Vector3> 左操作数
right DeepImmutable<Vector3> 正确的操作数

staticCross(left,right) → Vector3

返回一个新Vector3,作为向量“left”和“right”的叉积然后,叉积与“左”和“右”正交
Name Type Description
left DeepImmutable<Vector3> 左操作数
right DeepImmutable<Vector3> 正确的操作数

staticCrossToRef(left,right,result)

使用“左”和“右”的叉积设置给定向量“result”然后,叉积与“左”和“右”正交
Name Type Description
left Vector3 左操作数
right Vector3 正确的操作数
result Vector3 用于存储结果的Vector3

staticNormalize(vector) → Vector3

返回一个新Vector3作为给定矢量的规范化
Name Type Description
vector DeepImmutable<Vector3> 要规范化的Vector3

staticNormalizeToRef(vector,result)

使用给定第一个向量的规范化设置给定向量“result”
Name Type Description
vector DeepImmutable<Vector3> 要规范化的Vector3
result Vector3 用于存储结果的Vector3

staticProject(vector,world,transform,viewport) → Vector3

将Vector3投影到屏幕空间
Name Type Description
vector DeepImmutable<Vector3> 要投影的Vector3
world DeepImmutable<Matrix> 世界矩阵
transform DeepImmutable<Matrix> 变换(视图x投影)矩阵
viewport DeepImmutable<Viewport> 屏幕视口

staticUnprojectFromTransform(source,viewportWidth,viewportHeight,world,transform) → Vector3

从屏幕空间取消投影到对象空间
Name Type Description
source Vector3 屏幕空间Vector3
viewportWidth number 视口的当前宽度
viewportHeight number 视口的当前高度
world DeepImmutable<Matrix> 世界矩阵(可以设置为Identity以进入世界空间)
transform DeepImmutable<Matrix> 变换(视图x投影)矩阵

staticUnproject(source,viewportWidth,viewportHeight,world,view,projection) → Vector3

从屏幕空间取消投影到对象空间
Name Type Description
source DeepImmutable<Vector3> 屏幕空间Vector3
viewportWidth number 视口的当前宽度
viewportHeight number 视口的当前高度
world DeepImmutable<Matrix> 世界矩阵(可以设置为Identity以进入世界空间)
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵

staticUnprojectToRef(source,viewportWidth,viewportHeight,world,view,projection,result)

从屏幕空间取消投影到对象空间
Name Type Description
source DeepImmutable<Vector3> 屏幕空间Vector3
viewportWidth number 视口的当前宽度
viewportHeight number 视口的当前高度
world DeepImmutable<Matrix> 世界矩阵(可以设置为Identity以进入世界空间)
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵
result Vector3 用于存储结果的Vector3

staticUnprojectFloatsToRef(sourceX,sourceY,sourceZ,viewportWidth,viewportHeight,world,view,projection,result)

从屏幕空间取消投影到对象空间
Name Type Description
sourceX float 屏幕空间x坐标
sourceY float 屏幕空间y坐标
sourceZ float 屏幕空间z坐标
viewportWidth number 视口的当前宽度
viewportHeight number 视口的当前高度
world DeepImmutable<Matrix> 世界矩阵(可以设置为Identity以进入世界空间)
view DeepImmutable<Matrix> 视图矩阵
projection DeepImmutable<Matrix> 投影矩阵
result Vector3 用于存储结果的Vector3

staticMinimize(left,right) → Vector3

获取两个Vector3之间的最小坐标值
Name Type Description
left DeepImmutable<Vector3> 第一个操作数
right DeepImmutable<Vector3> 第二个操作数

staticMaximize(left,right) → Vector3

获取两个Vector3之间的最大坐标值
Name Type Description
left DeepImmutable<Vector3> 第一个操作数
right DeepImmutable<Vector3> 第二个操作数

staticDistance(value1,value2) → number

返回向量“value1”和“value2”之间的距离
Name Type Description
value1 DeepImmutable<Vector3> 第一个操作数
value2 DeepImmutable<Vector3> 第二个操作数

staticDistanceSquared(value1,value2) → number

返回向量“value1”和“value2”之间的平方距离
Name Type Description
value1 DeepImmutable<Vector3> 第一个操作数
value2 DeepImmutable<Vector3> 第二个操作数

staticCenter(value1,value2) → Vector3

返回位于“value1”和“value2”之间中心的新Vector3
Name Type Description
value1 DeepImmutable<Vector3> 第一个操作数
value2 DeepImmutable<Vector3> 第二个操作数

staticRotationFromAxis(axis1,axis2,axis3) → Vector3

给定空间(目标系统)中三个正交的标准化左手系方向Vector3轴,RotationFromAxis()返回旋转Euler角度(例如:rotation.x、rotation.y、rotation.z)使其从局部系统旋转到给定的目标系统注意:在此操作过程中,axis1、axis2和axis3被规范化
Name Type Description
axis1 DeepImmutable<Vector3> 第一个轴
axis2 DeepImmutable<Vector3> 第二个轴
axis3 DeepImmutable<Vector3> 第三个轴

staticRotationFromAxisToRef(axis1,axis2,axis3,ref)

与RotationFromAxis相同,但更新给定的ref Vector3参数,而不是返回新的Vector3
Name Type Description
axis1 DeepImmutable<Vector3> 第一个轴
axis2 DeepImmutable<Vector3> 第二个轴
axis3 DeepImmutable<Vector3> 第三个轴
ref Vector3 用于存储结果的Vector3