ARVec3
所有文档

          AR开放平台

          ARVec3

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

          ARVec3表示一个三维向量,包含三个float型成员x,y,z。

          Fields

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

          ARVec3::x

          获取三维向量中的x的值

          Parameters

          Returns

          • float | x的值
          sample:
          local vec3 = ae.ARVec3:new_local(30,50,70)
          local x_value = vec3.x

          ARVec3::y

          获取三维向量中的y的值

          Parameters

          Returns

          • float | y的值

          DEMO:

          sample:
          local vec3 = ae.ARVec3:new_local(30,50,70)
          local y_value = vec3.y

          ARVec3::z

          获取三维向量中的z的值

          Parameters

          Returns

          • float | z的值

          DEMO:

          sample:
          local vec3 = ae.ARVec3:new_local(30,50,70)
          local z_value = vec3.z

          Public Methods

          返回类型 函数名 备注
          ARVec3 ARVec3() 构造函数
          ARVec3 ARVec3(float x, float y, float z) 构造函数
          float dot(ARVec3& data) 向量点乘
          ARVec3 cross(ARVec3& data) 向量叉乘
          ARVec3 normalize() 返回这个向量的单位向量
          float length() 获取长度
          ARVec3 to_euler_angles() 把一个方向转换为欧拉角
          float vector_angle(const ARVec3& tar_vec) 获取两个向量之间的夹角
          string to_string() 转换为字符串
          ARVec3 operator+(const ARVec3& src) + 号操作符
          ARVec3 operator-(const ARVec3& src) - 号操作符
          ARVec3 operator*(const ARVec3& src) * 号操作符(向量相乘)
          ARVec3 operator*(const float scale) * 号操作符(数字相乘)
          ARVec3 operator/(const ARVec3& src) / 号操作符
          bool operator==(const ARVec3& src) ==号操作符
          float& operator[](unsigned i) []号操作符

          ARVec3::ARVec3()

          ARVec3 ARVec3()

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

          Parameters

          Returns

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

          ARVec3::ARVec3(float x, float y, float z)

          ARVec3 ARVec3(float x, float y, float z)

          构造函数,传入参数x、y、z

          Parameters

          • x |float
          • y | float
          • z | float

          Returns

          • ARVec3 | 一个新的ARVec3
          sample:
          local data = ae.ARVec3:new_local(1,2,3)

          ARVec3::dot(ARVec3& data)

          float dot(ARVec3& data)

          点乘

          Parameters

          • data |ARVec3

          Returns

          • float | 点乘的结果
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data:dot(data2)

          ARVec3::cross(ARVec3& data)

          ARVec3 cross(ARVec3& data)

          叉乘

          Parameters

          • data |ARVec3

          Returns

          • ARVec3 | 一个新的ARVec3,叉乘的结果
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data:cross(data2)

          ARVec3::normalize()

          ARVec3 normalize()

          返回这个向量的单位向量

          Parameters

          Returns

          • ARVec3 | 返回这个向量的单位向量
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local result = data:normalize()

          ARVec3::length()

          float length()

          得到向量的长度

          Parameters

          Returns

          • float | 返回向量的长度
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local result = data:length()

          ARVec3::to_euler_angles()

          ARVec3 to_euler_angles()

          如果这个向量代表一个方向,那么将其转换为欧拉角

          Parameters

          Returns

          • ARVec3 | 代表这个方向的欧拉角
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local eular = data:to_euler_angles()

          ARVec3::vector_angle(const ARVec3& tar_vec)

          float vector_angle(const ARVec3& tar_vec)

          获取该向量与另一个向量之间的夹角

          Parameters

          • tar_vec | ARVec3 传入的另一个向量

          Returns

          • float | 夹角
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(3,2,1)
          local result = data:vector_angle(data2)

          ARVec3::to_string()

          string to_string()

          获取向量的字符串表示

          Parameters

          Returns

          • string | 向量的字符串表示
          sample:
          local data = ae.ARVec3:new_local(1,2,3)
          local result = data:to_string()

          ARVec3::operator+(const ARVec3& src)

          ARVec3 operator+(const ARVec3& src)

          重载加号运算符,向量各个分量相加

          Parameters

          • src |ARVec3

          Returns

          • ARVec3 | 一个新的ARVec3
          sample:
          local data1 = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data1 + data2

          ARVec3::operator-(const ARVec3& src)

          ARVec3 operator-(const ARVec3& src)

          重载减号运算符,向量各个分量相减

          Parameters

          • src |ARVec3

          Returns

          • ARVec3 | 一个新的ARVec3
          sample:
          local data1 = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data1 - data2

          ARVec3::operator*(const ARVec3& src)

          ARVec3 operator*(const ARVec3& src)

          重载乘号运算符,向量各个分量相乘

          Parameters

          • src |ARVec3

          Returns

          • ARVec3 | 一个新的ARVec3
          sample:
          local data1 = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data1 * data2

          ARVec3::operator*(const float scale)

          ARVec3 operator*(const float scale)

          重载乘号运算符,与一个数相乘,向量各个分量分别与该数相乘

          Parameters

          • scale |float 表示放大系数

          Returns

          • ARVec3 | 一个新的ARVec3
          sample:
          local data1 = ae.ARVec3:new_local(1,2,3)
          local scale = 3.0
          local result = data1 * scale

          ARVec3::operator/(const ARVec3& src)

          ARVec3 operator/(const ARVec3& src)

          重载除号运算符,向量各个分量相除

          Parameters

          • src |ARVec3

          Returns

          • ARVec3 | 一个新的ARVec3
          local data1 = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          local result = data1 / data2

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

          bool operator==(const ARVec3& src)

          重载等于运算符,所有分量相等则相等

          Parameters

          • src |ARVec3

          Returns

          • bool | true 或者false
          sample:
          local data1 = ae.ARVec3:new_local(1,2,3)
          local data2 = ae.ARVec3:new_local(1,2,3)
          if (data1 == data2) then
          
          else
          
          end

          ARVec3::operator[](unsigned i)

          float operator[](unsigned i)

          重载[]操作符,[0]表示获取x的值,[1]表示获取y的值,[2]表示获取z的值 注意:调用2以上会造成数组越界,是非法操作

          Parameters

          • i |int 表示序列数index

          Returns

          • float | x或y或z的值
          local data = ae.ARVec3:new_local(1,2,3)
          local x = data[0]
          local y = data[1]
          local z = data[2]
          上一篇
          ARVec2
          下一篇
          ARVec4