Skip to content

Linalg

本文档由 src/stdlib/linalg.mcrs 自动生成,请勿手动编辑。

API 列表


vec2d_dot v2.0.0

两个二维向量的点积

redscript
fn vec2d_dot(ax: double, ay: double, bx: double, by: double): double

参数

参数说明
ax向量 A 的 X 分量
ay向量 A 的 Y 分量
bx向量 B 的 X 分量
by向量 B 的 Y 分量

返回: axbx + ayby

示例

redscript
let d: double = vec2d_dot(1.0d, 0.0d, 0.0d, 1.0d)

vec2d_length v2.0.0

二维向量的欧几里得长度

redscript
fn vec2d_length(x: double, y: double): double

参数

参数说明
xX 分量
yY 分量

返回: sqrt(x² + y²)

示例

redscript
let len: double = vec2d_length(3.0d, 4.0d)

vec2d_dist v2.0.0

两个二维点之间的欧几里得距离

redscript
fn vec2d_dist(ax: double, ay: double, bx: double, by: double): double

参数

参数说明
ax点 A 的 X 坐标
ay点 A 的 Y 坐标
bx点 B 的 X 坐标
by点 B 的 Y 坐标

返回: sqrt((ax-bx)² + (ay-by)²)

示例

redscript
let dist: double = vec2d_dist(0.0d, 0.0d, 3.0d, 4.0d)

vec2d_normalize_x v2.0.0

二维单位向量的 X 分量;零向量返回 0.0

redscript
fn vec2d_normalize_x(x: double, y: double): double

参数

参数说明
xX 分量
yY 分量

返回: x / ||(x,y)||,零向量时返回 0.0

示例

redscript
let nx: double = vec2d_normalize_x(3.0d, 4.0d)

vec2d_normalize_y v2.0.0

二维单位向量的 Y 分量;零向量返回 0.0

redscript
fn vec2d_normalize_y(x: double, y: double): double

参数

参数说明
xX 分量
yY 分量

返回: y / ||(x,y)||,零向量时返回 0.0

示例

redscript
let ny: double = vec2d_normalize_y(3.0d, 4.0d)

vec3d_dot v2.0.0

两个三维向量的点积

redscript
fn vec3d_dot(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

参数

参数说明
axX component of vector A
ayY component of vector A
azZ component of vector A
bxX component of vector B
byY component of vector B
bzZ component of vector B

返回: axbx + ayby + az*bz

示例

redscript
let d: double = vec3d_dot(1.0d, 0.0d, 0.0d, 0.0d, 1.0d, 0.0d)

vec3d_length v2.0.0

三维向量的欧几里得长度

redscript
fn vec3d_length(x: double, y: double, z: double): double

参数

参数说明
xX component
yY component
zZ component

返回: sqrt(x² + y² + z²)

示例

redscript
let len: double = vec3d_length(1.0d, 2.0d, 2.0d)

vec3d_dist v2.0.0

两个三维点之间的欧几里得距离

redscript
fn vec3d_dist(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

参数

参数说明
axX coordinate of point A
ayY coordinate of point A
azZ coordinate of point A
bxX coordinate of point B
byY coordinate of point B
bzZ coordinate of point B

返回: sqrt((ax-bx)² + (ay-by)² + (az-bz)²)


vec3d_cross_x v2.0.0

叉积 a × b 的 X 分量

redscript
fn vec3d_cross_x(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

参数

参数说明
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

返回: aybz - azby


vec3d_cross_y v2.0.0

叉积 a × b 的 Y 分量

redscript
fn vec3d_cross_y(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

参数

参数说明
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

返回: azbx - axbz


vec3d_cross_z v2.0.0

叉积 a × b 的 Z 分量

redscript
fn vec3d_cross_z(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

参数

参数说明
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

返回: axby - aybx


vec3d_normalize_x v2.0.0

三维单位向量的 X 分量;零向量返回 0.0

redscript
fn vec3d_normalize_x(x: double, y: double, z: double): double

参数

参数说明
xX component @param y Y component @param z Z component

返回: x / ||(x,y,z)||,零向量时返回 0.0

示例

redscript
let nx: double = vec3d_normalize_x(3.0d, 4.0d, 0.0d)

vec3d_normalize_y v2.0.0

三维单位向量的 Y 分量;零向量返回 0.0

redscript
fn vec3d_normalize_y(x: double, y: double, z: double): double

参数

参数说明
xX component @param y Y component @param z Z component

返回: y / ||(x,y,z)||,零向量时返回 0.0


vec3d_normalize_z v2.0.0

三维单位向量的 Z 分量;零向量返回 0.0

redscript
fn vec3d_normalize_z(x: double, y: double, z: double): double

参数

参数说明
xX component @param y Y component @param z Z component

返回: z / ||(x,y,z)||,零向量时返回 0.0


mat2d_det v2.0.0

2×2 矩阵的行列式

redscript
fn mat2d_det(a: double, b: double, c: double, d: double): double

参数

参数说明
aElement [0,0] @param b Element [0,1]
cElement [1,0] @param d Element [1,1]

返回: ad - bc

示例

redscript
let det: double = mat2d_det(1.0d, 2.0d, 3.0d, 4.0d)

mat2d_mul_r0c0 v2.0.0

两个 2×2 矩阵乘积 M0×M1 的元素 [0,0]

redscript
fn mat2d_mul_r0c0(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

参数

参数说明
a0M0 row-major elements (a0, b0, c0, d0)
a1M1 row-major elements (a1, b1, c1, d1)

返回: a0a1 + b0c1


mat2d_mul_r0c1 v2.0.0

两个 2×2 矩阵乘积 M0×M1 的元素 [0,1]

redscript
fn mat2d_mul_r0c1(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

参数

参数说明
a0M0 row-major elements @param a1 M1 row-major elements

返回: a0b1 + b0d1


mat2d_mul_r1c0 v2.0.0

两个 2×2 矩阵乘积 M0×M1 的元素 [1,0]

redscript
fn mat2d_mul_r1c0(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

参数

参数说明
a0M0 row-major elements @param a1 M1 row-major elements

返回: c0a1 + d0c1


mat2d_mul_r1c1 v2.0.0

两个 2×2 矩阵乘积 M0×M1 的元素 [1,1]

redscript
fn mat2d_mul_r1c1(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

参数

参数说明
a0M0 row-major elements @param a1 M1 row-major elements

返回: c0b1 + d0d1


mat2d_vecmul_x v2.0.0

2×2 矩阵与向量乘积 M×v 的 X 分量

redscript
fn mat2d_vecmul_x(a: double, b: double, c: double, d: double, vx: double, vy: double): double

参数

参数说明
aM[0,0] @param b M[0,1] @param c M[1,0] @param d M[1,1]
vxVector X component @param vy Vector Y component

返回: avx + bvy


mat2d_vecmul_y v2.0.0

2×2 矩阵与向量乘积 M×v 的 Y 分量

redscript
fn mat2d_vecmul_y(a: double, b: double, c: double, d: double, vx: double, vy: double): double

参数

参数说明
aM[0,0] @param b M[0,1] @param c M[1,0] @param d M[1,1]
vxVector X component @param vy Vector Y component

返回: cvx + dvy


solve2d_x v2.0.0

用 Cramer 法则求解 2×2 线性方程组的 x 分量

redscript
fn solve2d_x(a: double, b: double, c: double, d: double, ex: double, ey: double): double

参数

参数说明
aM[0,0] @param b M[0,1]
cM[1,0] @param d M[1,1]
exRHS x @param ey RHS y

返回: (exd - bey) / det

示例

redscript
let x: double = solve2d_x(1.0d, 0.0d, 0.0d, 1.0d, 3.0d, 4.0d)

solve2d_y v2.0.0

用 Cramer 法则求解 2×2 线性方程组的 y 分量

redscript
fn solve2d_y(a: double, b: double, c: double, d: double, ex: double, ey: double): double

参数

参数说明
aM[0,0] @param b M[0,1]
cM[1,0] @param d M[1,1]
exRHS x @param ey RHS y

返回: (aey - exc) / det

示例

redscript
let y: double = solve2d_y(1.0d, 0.0d, 0.0d, 1.0d, 3.0d, 4.0d)

Released under the MIT License.