跳至正文
版本:bleeding-edge 🩸

📐 向量

由浮点精度组件 (X, Y, Z) 组成的向量。主要用于实体位置。


信息

向量在内部进行自动压缩,这可以将其在网络中的大小减少高达 90%。一些很棒的细节:

  • 类方法中的向量参数通常以小数点后 1 位的精度进行压缩(某些情况下需要更高的精度)。
  • 远程事件中传递的向量以小数点后 2 位的精度进行压缩。如果需要更高的精度,我们建议你将它们作为原始数字传递。

🎒 示例​

local new_vector = Vector(1452.5, 512, 943.1)

🛠 构造函数​

Default Constructor​

No description provided

local my_vector = Vector(X?, Y?, Z?)

Parameters

TypeNameDefaultDescription
floatX0X 坐标
floatYXY 坐标
floatZXZ 坐标

🧽 属性​

TypeNameDescription
floatXX 坐标
floatYY 坐标
floatZZ 坐标

🦠 函数​

信息

This structure supports +, -, *, /, ^, ==, unary - (negation) and tostring operations.

ReturnsNameDescription
booleanEquals在指定的误差范围内检查与另一个向量是否相等
floatDistance两点之间的距离
floatDistanceSquared两点之间的平方距离
VectorGetUnsafeNormal计算向量的归一化版本,不检查长度是否为零
VectorGetSafeNormal获取向量的归一化副本,并根据长度检查此操作是否安全
booleanIsNear高效检查向量是否在指定半径内接近另一个向量
booleanIsNearlyZero检查向量在指定的容差范围内是否接近于零
booleanIsZero检查向量的所有组件是否严格为零
booleanNormalize如果该向量大于给定的容差,则对其进行就地归一化。否则保持不变
floatSize获取该向量的长度(模长)
floatSizeSquared获取该向量的平方长度
RotatorToOrientationRotator返回对应于向量指向方向的旋转体朝向
QuatToOrientationQuat返回对应于向量指向方向的四元数朝向
floatDot两个向量的点积
VectorCross两个向量的叉积

Optimal

Equals​

在指定的误差范围内检查该向量是否与另一个向量相等
local ret = my_vector:Equals(other, tolerance?)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要对比的向量
floattolerance?0.000001
误差范围

Returns

TypeDescription
boolean向量是否相等

Optimal

Distance​

返回 2 个向量之间的距离
local ret = my_vector:Distance(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要获取距离的另一个向量

Returns

TypeDescription
float向量之间的距离

Optimal

DistanceSquared​

返回 2 个向量之间的平方距离
local ret = my_vector:DistanceSquared(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要获取平方距离的另一个向量

Returns

TypeDescription
float向量之间的平方距离

Optimal

GetUnsafeNormal​

返回向量的归一化版本,不检查长度是否为零
local ret = my_vector:GetUnsafeNormal()

Returns

TypeDescription
Vector不安全的法线

Optimal

GetSafeNormal​

返回向量的归一化副本,并根据长度检查此操作是否安全
local ret = my_vector:GetSafeNormal(tolerance?)

Parameters

TypeParameterDefaultDescription
floattolerance?0.000001
视为非零的最小平方大小

Returns

TypeDescription
Vector安全的法线

Optimal

IsNear​

高效检查向量是否在指定半径内接近另一个向量
local ret = my_vector:IsNear(other, radius)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要对比的向量
floatradius Required parameter 要检查的半径范围

Returns

TypeDescription
boolean该向量是否接近另一个向量

Optimal

IsNearlyZero​

检查向量在指定的容差范围内是否接近于零
local ret = my_vector:IsNearlyZero(tolerance?)

Parameters

TypeParameterDefaultDescription
floattolerance?0.000001
误差范围

Returns

TypeDescription
boolean该向量是否接近于零

Optimal

IsZero​

检查向量的所有组件是否严格为零
local ret = my_vector:IsZero()

Returns

TypeDescription
boolean向量的所有组件是否严格为零

Optimal

Normalize​

如果该向量大于给定的容差,则对其进行就地归一化。否则保持不变
local ret = my_vector:Normalize(tolerance?)

Parameters

TypeParameterDefaultDescription
floattolerance?0.000001
视为非零的最小平方大小

Returns

TypeDescription
boolean向量是否已被修改

Optimal

Size​

获取该向量的长度(模长)
local ret = my_vector:Size()

Returns

TypeDescription
float向量的长度

Optimal

SizeSquared​

获取该向量的平方长度
local ret = my_vector:SizeSquared()

Returns

TypeDescription
float向量的平方长度

Optimal

ToOrientationRotator​

返回对应于向量指向方向的旋转体朝向
local ret = my_vector:ToOrientationRotator()

Returns

TypeDescription
Rotator向量的朝向

Optimal

ToOrientationQuat​

返回对应于向量指向方向的四元数朝向
local ret = my_vector:ToOrientationQuat()

Returns

TypeDescription
Quat向量的朝向

Optimal

Dot​

返回该向量与另一个向量之间的点积
local ret = my_vector:Dot(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要进行点积的点

Returns

TypeDescription
float点积结果

Optimal

Cross​

返回该向量与另一个向量之间的叉积
local ret = my_vector:Cross(other)

Parameters

TypeParameterDefaultDescription
Vectorother Required parameter 要进行叉积的向量

Returns

TypeDescription
Vector叉积得到的向量