资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

ARMat33

此类封装数学库,适用于2.6版本以上的SDK。

ARMat33表示一个三维矩阵,包含三个ARVec3型成员x、y、z

Fileds

类型 成员变量
ARVec3 x
ARVec3 y
ARVec3 z

ARMat33::x

获取三维矩阵中的x向量,这个向量是一个三维向量

Parameters

Returns

  • ARVec3 : 返回x分量
sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local data = ae.ARMat33:new_local(x_vec, y_vec, z_vec)
 
local x = data.x

ARMat33::y

获取三维矩阵中的y向量,这个向量是一个三维向量

Parameters

Returns

  • ARVec3 : 返回y分量

DEMO:

sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local data = ae.ARMat33:new_local(x_vec, y_vec, z_vec)

 
local y = data.y

ARMat33::z

获取三维矩阵中的z向量,这个向量是一个三维向量

Parameters

Returns

  • ARVec3 : 返回z分量

DEMO:

sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local data = ae.ARMat33:new_local(x_vec, y_vec, z_vec)
 
local z = data.z

Public Methods

返回类型 函数名 备注
ARMat33 ARMat33() 构造函数
ARMat33 ARMat33(ARVec3& x, ARVec3& y, ARVec3& z) 构造函数
ARMat33 inverse() 返回逆矩阵
string to_string() 转换为字符串
ARMat33 operator+(const ARMat33& src + 号操作符
ARMat33 operator-(const ARMat33& src - 号操作符
ARMat33 operator*(const ARMat33& src) * 号操作符(矩阵相乘)
ARVec3 operator*(const ARVec3& src) * 号操作符(矩阵乘以向量)
ARMat33 operator/(const ARMat33& src / 号操作符
bool operator==(const ARMat33& src) ==号操作符
ARVec3& operator[](unsigned i) []号操作符

ARMat33()::ARMat33()

ARMat33 ARMat33()

构造函数,不传入任何参数,向量x、向量y和向量z的值默认为0

Parameters

Returns

  • ARMat33 : 一个新的ARMat33
sample:
local data = ae.ARMat33:new_local()

ARMat33::ARMat33(ARVec3& x, ARVec3& y, ARVec3& z)

ARMat33 ARMat33(ARVec3& x, ARVec3& y, ARVec3& z)`

构造函数,传入三个ARVec3的向量

Parameters

  • x | ARVec3
  • y | ARVec3
  • z | ARVec3

Returns

  • ARMat33 : 一个新的ARMat33
sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local mat33 = ae.ARMat33:new_local(x_vec, y_vec, z_vec)

ARMat33::inverse()

ARMat33 inverse()

返回该矩阵的逆矩阵

Parameters

Returns

  • ARMat33 : 返回该矩阵的逆矩阵
sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local mat33 = ae.ARMat33:new_local(x_vec, y_vec, z_vec)
local inverse_mat33 = mat33:inverse()

ARMat33::to_string()

string to_string()

返回此矩阵的字符串表示

Parameters

Returns

  • string : 返回此矩阵的字符串表示
sample:
local x_vec = ae.ARVec3:new_local(2,1,4)
local y_vec = ae.ARVec3:new_local(4,1,2)
local z_vec = ae.ARVec3:new_local(3,1,2)
local mat33 = ae.ARMat33:new_local(x_vec, y_vec, z_vec)
local string_mat = mat33:to_string()

ARMat33::operator+(const ARMat33& src)

ARMat33 operator+(const ARMat33& src) 重载加号运算符,两个矩阵相加,矩阵中的每一个值都对应相加

Parameters

  • src | ARMat33

Returns

  • ARMat33 : 返回一个新的矩阵
sample:
-- 创建ARMat33 mat_a,mat_b
local mat_result = mat_a + mat_b

ARMat33::operator-(const ARMat33& src)

ARMat33 operator-(const ARMat33& src) 重载减号运算符,两个矩阵相减,矩阵中的每一个值都对应相减

Parameters

  • src | ARMat33

Returns

  • ARMat33 : 返回一个新的矩阵
sample:
-- 创建ARMat33 mat_a,mat_b
local mat_result = mat_a - mat_b

ARMat33::operator*(const ARMat33& src)

ARMat33 operator*(const ARMat33& src) 重载乘号运算符,两个矩阵相乘,按照矩阵乘法的规则进行乘

Parameters

  • src | ARMat33

Returns

  • ARMat33 : 返回一个新的矩阵
sample:
-- 创建ARMat33 mat_a,mat_b
local mat_result = mat_a * mat_b

ARMat33::operator*(const ARVec3& src)

ARVec3 operator*(const ARVec3& src) 重载乘号运算符,矩阵与向量相乘,按照矩阵向量乘法的规则进行乘

Parameters

  • src | ARVec3

Returns

  • ARVec3 : 返回一个三维向量
sample:
-- 创建ARMat33 mat
-- 创建ARVec3 vec
local result = mat * vec

ARMat33::operator/(const ARMat33& src)

ARMat33 operator/(const ARMat33& src) 重载除号运算符,两个矩阵相除,每个分量分别相除

Parameters

  • src | ARMat33

Returns

  • ARMat33 : 返回一个新的矩阵
sample:
-- 创建ARMat33 mat_a,mat_b
local mat_result = mat_a / mat_b

ARMat33::operator==(const ARMat33& src)

bool operator==(const ARMat33& src) 重载等于号运算符,判断两个矩阵的每个分量是否相等

Parameters

  • src | ARMat33

Returns

  • bool : true或者false
sample:
-- 创建ARMat33 mat_a,mat_b
if (mat_a == mat_b) then

else

end

ARMat33::operator[](unsigned i)

ARvec3 operator[](unsigned i)

重载[]运算符,获取相应分量,[0]表示获取x三维向量,[1]表示获取y三维向量,[2]表示获取z三维向量 返回一个ARVec3 注意:调用2以上会造成数组越界,是非法操作

Parameters

  • i |int : 表示序列数index

Returns

  • ARVec3 : 返回x向量、y向量、z向量中的一个
sample:
-- 创建ARMat33 mat_a
local x = mat_a[0]
local y = mat_a[1]
local z = mat_a[2]
```
上一篇
ARMat22
下一篇
ARMat44