资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

Ray

此类封装Ray相关数据与操作,Ray代表几何射线结构,由起点和方向组成。

Public methods
Ray Ray
射线的无参构造函数,起点为(0,0,0),方向为(0,0,1)
Ray Ray(origin, direction)
射线的起点、方向构造函数
Ray Ray(copy)
射线的拷贝构造函数
Ray origin
获取射线的起点
Ray set_origin
设定射线的起点
Ray direction
获取射线的方向向量
Ray set_direction
设定射线的起点
Ray intersects(plane)
获取与平面相交点的距离,如果不相交,返回-1
Ray intersects(box)
获取与包围盒相交点的距离,如果不相交,返回-1
Demo
Ray Demo Ray RayDemo ()
Demo示例

Ray Demo

Ray RayDemo ()

demo示例

sample:
local origin = ae.ARVec3:new_local(0,0,0)
local direction = ae.ARVec3:new_local(0,1,0)
local ray = ae.Ray:new_local(origin,direction)
local dis = ray:intersect(plane)
--获取相交点
if distance > 0 then
	local point = ray:origin() + ray:direction() * distance
end

Ray

API起始版本:190

Ray Ray()

射线的无参构造函数,起点为(0,0,0),方向为(0,0,1)

Returns

  • Ray : 默认参数构造的射线
sample:
local ray = ae.Ray:new_local()

Ray(origin, direction)

API起始版本:190

Ray Ray(origin, direction)

射线的起点、方向构造函数

Parameters

  • ARVec3 | origin : 射线起点
  • ARVec3 | direction : 射线方向

Returns

  • Ray : 由起点和方向构成的射线
sample:
local ray = ae.Ray:new_local(ae.ARVec3:new_local(0,0,0), ae.ARVec3:new_local(0,1,0))

Ray(copy)

API起始版本:190

Ray Ray(copy)

射线的拷贝构造函数

Parameters

  • Ray | copy : 射线对象

Returns

  • Ray : 由copy构造的射线
sample:
local ray = ae.Ray:new_local(ae.ARVec3:new_local(0,0,0), ae.ARVec3:new_local(0,1,0))
local ray1 = ae.Ray:new_local(ray)

origin

API起始版本:190

ARVec3 origin()

获取射线的起点

Returns

  • ARVec3 : 射线起点
sample:
local origin = ray:origin()

set_origin

API起始版本:190

void set_origin(origin)

设定射线的起点

Parameters

  • ARVec3 | origin : 起点
sample:
ray:set_origin(origin)

direction

API起始版本:190

ARVec3 direction()

获取射线的方向向量

Returns

  • ARVec3 : 射线方向向量
sample:
local dir = ray:direction()

set_direction

API起始版本:190

void set_direction(dir)

设定射线的起点

Parameters

  • ARVec3 | dir : 方向向量
sample:
ray:set_direction(dir)

intersects(plane)

API起始版本:190

float intersects(plane)

获取与平面相交点的距离,如果不相交,返回-1

Parameters

  • Plane | plane : 平面对象

Returns

  • float : 与相交点的距离,如果不相交,返回-1
sample:
local distance = ray:intersects(plane)
if distance > 0 then
	...
end

intersects(box)

API起始版本:190

float intersects(box)

获取与包围盒相交点的距离,如果不相交,返回-1

Parameters

  • BoundingBox | box : 包围盒

Returns

  • float : 与相交点的距离,如果不相交,返回-1
sample:
local distance = ray:intersects(box)
if distance > 0 then
	...
end
上一篇
Plane
下一篇
RayCaster