ARMat22
所有文档

          AR开放平台

          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