开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

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