Vector
表示一个包含三个分量的向量。使用 Vector.xy 创建的向量 z = 0。所有长度和插值运算(length、dot、distance、normalized、lerp 等)都会使用全部三个分量;当 z = 0 时,它们的行为与 2D 数学完全一致。
字段
x
向量的 x 分量(只读)。
local v = Vector.xy(10, -5)
local xValue = v.x -- 10
y
向量的 y 分量(只读)。
local v = Vector.xy(10, -5)
local yValue = v.y -- -5
z
向量的 z 分量(只读)。使用 Vector.xy 创建的向量该值为零;由返回 Vector 的 3D API 填充。
local v = m:transformPoint(1, 2, 3)
local zValue = v.z
构造函数
xy
xy(x: number, y: number) -> Vector
创建一个具有指定 x 和 y 分量的向量。
local v = Vector.xy(5, -2) -- 5 -2
xyz
xyz(x: number, y: number, z: number) -> Vector
创建一个具有指定 x、y 和 z 分量的向量。
local v = Vector.xyz(1, 2, 3)
origin
origin() -> Vector
返回零向量 (0, 0)。
local origin = Vector.origin() -- 0 0
cross3
cross3(a: Vector, b: Vector) -> Vector
返回两个向量的 3D 叉积。
local z = Vector.cross3(Vector.xyz(1,0,0), Vector.xyz(0,1,0)) -- 0 0 1
scaleAndAdd
scaleAndAdd(a: Vector, b: Vector, scale: number) -> Vector
返回 a + b * scale。
local r = Vector.scaleAndAdd(Vector.xy(1,2), Vector.xy(3,4), 2) -- 7 10
scaleAndSub
scaleAndSub(a: Vector, b: Vector, scale: number) -> Vector
返回 a - b * scale。
local r = Vector.scaleAndSub(Vector.xy(7,10), Vector.xy(3,4), 2) -- 1 2
lerp
lerp(from: Vector, to: Vector, t: number) -> Vector
返回 from 向量与 to 向量之间的线性插值,使用 t,其中 0 返回 from 向量,1 返回 to 向量。
local p = Vector.lerp(Vector.xy(0,0), Vector.xy(8,0), 0.25) -- 2 0
normalized
normalized(v: Vector) -> Vector
返回给定向量的归一化副本。
local n = Vector.normalized(Vector.xy(10, 0)) -- Vector.xy(1, 0)