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

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