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

ARMat22

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

ARMat22表示一个 二维矩阵,包含两个ARVec2型成员x,y

Fileds

类型 成员变量
ARVec2 x
ARVec2 y

ARMat22::x

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

Parameters

Returns

  • ARVec2 | 向量 : x
sample:
local x_vec = ae.ARVec2:new_local(2,1)
local y_vec = ae.ARVec2:new_local(4,1)

local data = ae.ARMat22:new_local(x_vec, y_vec)
 
local x = data.x

ARMat22::y

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

Parameters

Returns

  • ARVec2 | 向量 : y

DEMO:

sample:
local x_vec = ae.ARVec2:new_local(2,1)
local y_vec = ae.ARVec2:new_local(4,1)

local data = ae.ARMat22:new(x_vec, y_vec)
local y = data.y

Public Methods

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

ARMat22()::ARMat22()

ARMat22 ARMat22()

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

Parameters

Returns

  • ARMat22 : 一个新的ARMat22

返回值为ARMat22

DEMO:

local data = ae.ARMat22:new_local()

ARMat22::ARMat22(ARVec2& x, ARVec2& y)

ARMat22 ARMat22(ARVec2& x, ARVec2& y)`

构造函数,传入两个ARVec2的向量

Parameters

  • x | ARVec2
  • y | ARVec2

Returns

  • ARMat22 | 一个新的ARMat22
sample:
local x_vec = ae.ARVec2:new_local(2,1)
local y_vec = ae.ARVec2:new_local(4,1)
local data = ae.ARMat22:new_local(x_vec, y_vec)

ARMat22::inverse()

ARMat22 inverse()

返回该矩阵的逆矩阵,调用时请保证该矩阵可逆

Parameters

Returns

  • ARMat22 : 返回这个矩阵的逆矩阵
sample:
local x_vec = ae.ARVec2:new_local(-0.5,0.5)
local y_vec = ae.ARVec2:new_local(2,-1)
local mat22 = ae.ARMat22:new_local(x_vec, y_vec)
local inverse_mat22 = mat22:inverse()

ARMat22::to_string()

string to_string()

返回此矩阵的字符串表示

Parameters

Returns

  • string : 返回此矩阵的字符串表示
sample:
local x_vec = ae.ARVec2:new_local(-0.5,0.5)
local y_vec = ae.ARVec2:new_local(2,-1)
local mat22 = ae.ARMat22:new_local(x_vec, y_vec)
local string_mat = mat22:to_string()

ARMat22::operator+(const ARMat22& src)

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

Parameters

  • src | ARMat22

Returns

  • ARMat22 : 一个新的ARMat22
sample:
-- 创建ARMat22 mat_a,mat_b
local mat_result = mat_a + mat_b

ARMat22::operator-(const ARMat22& src)

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

Parameters

  • src | ARMat22

Returns

  • ARMat22 : 一个新的ARMat22
sample:
-- 创建ARMat22 mat_a,mat_b
local mat_result = mat_a - mat_b

ARMat22::operator*(const ARMat22& src)

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

Parameters

  • src | ARMat22

Returns

  • ARMat22 : 一个新的ARMat22
sample:
-- 创建ARMat22 mat_a,mat_b
local mat_result = mat_a * mat_b

ARMat22::operator*(const ARVec2& src)

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

Parameters

  • src | ARVec2

Returns

  • ARVec2 : 返回一个二维向量
sample:
--创建ARMat22 mat
--创建ARVec2 vec
local result = mat * vec

ARMat22::operator/(const ARMat22& src)

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

Parameters

  • src | ARMat22

Returns

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

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

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

Parameters

  • src | ARMat22

Returns

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

ARMat22::operator[](unsigned i)

ARVec2 operator[](unsigned i)

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

Parameters

  • i | int : 表示序列数index

Returns

  • ARVec2 : 返回x向量、 y向量中的一个
	sample:
	-- 创建ARMat22 mat_a
	local x = mat_a[0]
	local y = mat_a[1]
上一篇
实时跟踪定位
下一篇
ARMat33