跳到主要内容

向量(Vector)

表示包含 xy 分量的向量。

字段(Fields)

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

构造器(Constructors)

xy

按给定 x/y 创建向量。

local v = Vector.xy(5, -2)  -- 5 -2

origin

返回零向量 (0,0)

local origin = Vector.origin()  -- 0 0

scaleAndAdd

返回 a + b * scale

local r = Vector.scaleAndAdd(Vector.xy(1,2), Vector.xy(3,4), 2)  -- 7 10

scaleAndSub

返回 a - b * scale

local r = Vector.scaleAndSub(Vector.xy(7,10), Vector.xy(3,4), 2)  -- 1 2

lerp

t 对两个向量做线性插值。

local p = Vector.lerp(Vector.xy(0,0), Vector.xy(8,0), 0.25)  -- 2 0

normalized

返回给定向量的归一化副本。

local n = Vector.normalized(Vector.xy(10, 0))  -- Vector.xy(1, 0)

静态函数(Static Functions)

distance

返回两向量距离。

local d = Vector.distance(Vector.xy(3, 4), Vector.xy(0, 0))  -- 5

distanceSquared

返回两向量距离平方。

local d2 = Vector.distanceSquared(Vector.xy(3,4), Vector.xy(0,0))  -- 25

dot

返回点积。

local dp = Vector.dot(Vector.xy(1,2), Vector.xy(3,4))  -- 11 (1*3 + 2*4)

cross

返回叉积(3D 叉积的 z 分量)。

local c = Vector.cross(Vector.xy(1, 0), Vector.xy(0, 1))  -- 1

length

返回向量长度。

local len = Vector.length(Vector.xy(3, 4))  -- 5

lengthSquared

返回向量长度平方。

local len2 = Vector.lengthSquared(Vector.xy(3, 4))  -- 25

方法(Methods)

length

警告(Deprecated):请改用 Vector.length

返回向量长度。

lengthSquared

警告(Deprecated):请改用 Vector.lengthSquared

返回向量长度平方。

local v = Vector.xy(3, 4)
local len2 = v:lengthSquared() -- 25

normalized

警告(Deprecated):请改用 Vector.normalized

返回向量归一化副本;若长度为 0 则返回零向量。

local v = Vector.xy(10, 0)
local n = v:normalized() -- 1 0

__eq

两个向量分量相等时返回 true

local a = Vector.xy(1, 2)
local b = Vector.xy(1, 2)
local c = Vector.xy(2, 1)
print(a == b) -- true
print(a == c) -- false

__unm

返回取反向量。

local v = Vector.xy(2, -3)
local neg = -v -- -2 3

__add

返回向量和。

local a = Vector.xy(2, 3)
local b = Vector.xy(-1, 5)
local c = a + b -- 1 8

__sub

返回向量差。

local a = Vector.xy(2, 3)
local b = Vector.xy(-1, 5)
local c = a - b -- 3 -2

__mul

返回按标量缩放后的向量。

local v = Vector.xy(3, -2)
local doubled = v * 2 -- 6 -4

__div

返回按标量相除后的向量。

local v = Vector.xy(6, -4)
local half = v / 2 -- 3 -2

distance

警告(Deprecated):请改用 Vector.distance

返回到另一个向量的距离。

local a = Vector.xy(0, 0)
local b = Vector.xy(3, 4)
print(a:distance(b)) -- 5

distanceSquared

警告(Deprecated):请改用 Vector.distanceSquared

返回到另一个向量的距离平方。

local a = Vector.xy(0, 0)
local b = Vector.xy(3, 4)
print(a:distanceSquared(b)) -- 25

dot

警告(Deprecated):请改用 Vector.dot

返回与另一个向量的点积。

local a = Vector.xy(1, 2)
local b = Vector.xy(3, 4)
print(a:dot(b)) -- 11 (1*3 + 2*4)

lerp

警告(Deprecated):请改用 Vector.lerp

返回当前向量与另一个向量在 t 下的线性插值。

local a = Vector.xy(0, 0)
local b = Vector.xy(10, 0)
local p = a:lerp(b, 0.5) -- 5 0