Plane
更新时间:2021-06-17
此类封装Plane相关数据与操作,Plane代表几何结构平面,由平面法线向量和由平面沿法线向量到原点的距离表示。
Public methods | |
---|---|
Plane | Plane 平面的无参构造函数,默认法线方向向量为(0,1,0),由平面沿法线向量到原点的距离默认为0,即xoz平面 |
Plane | Plane(normal, distance)平面的法线、由平面沿法线向量到原点的距离构造函数,非归一化的平面法线会被归一化保存和进行计算 |
Plane | Plane(v1, v2, v3) 平面的三个非共线点构造函数,平面法线方向为v1->v2向量和v1->v3向量叉乘决定,符合右手定则 |
Plane | Plane(copy) 平面的拷贝构造函数 |
Plane | set(normal, distance) 设定Plane的法线和由平面沿法线向量到原点的距离,平面法线会被归一化保存和进行计算 |
Plane | set(plane) 由Plane设定Plane |
Plane | set_normal 设定平面的法线,归一化保存和参与计算 |
Plane | normal 获取平面的法线,归一化后保存和参与计算的数值 |
Plane | distacne 获取沿平面法线由平面到坐标系原点的距离 |
Plane | set_distance 设定沿平面法线由平面到坐标系原点的距离 |
Demo | |
---|---|
Plane Demo | Plane PlaneDemo ()Demo示例 |
Plane PlaneDemo ()
demo示例
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 10)
plane:set_normal(ae.ARVec3:new_local(1,0,0))
plane:set_distance(100)
local normal = plane:normal()
local distance = plane:distance()
--构造过(x,y,z)点的法线为原点到该点的平面
local point = ae.ARVec3:new_local(x,y,z)
plane = ae.Plane:new_local(point, -point:length())
--根据平面获取对应平面上点
point = plane:normal() * (-1 * plane:distance())
Plane
API起始版本:190
Plane Plane()
平面的无参构造函数,默认法线方向向量为(0,1,0),由平面沿法线向量到原点的距离默认为0,即xoz平面
Returns
- Plane : 默认参数构造的平面
sample:
local plane = ae.Plane:new_local()
Plane(normal, distance)
API起始版本:190
Plane Plane(normal, distance)
平面的法线、由平面沿法线向量到原点的距离构造函数,非归一化的平面法线会被归一化保存和进行计算
Parameters
- ARVec3 | normal : 平面法线方向向量
- float | distance : 沿平面法线由平面到坐标系原点的距离
Returns
- Plane : 由normal和distance构造的平面
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
Plane(v1, v2, v3)
API起始版本:190
Plane Plane(v1, v2, v3)
平面的三个非共线点构造函数,平面法线方向为v1->v2向量和v1->v3向量叉乘决定,符合右手定则
Parameters
- ARVec3 | v1 : 平面点v1
- ARVec3 | v2 : 平面点v2
- ARVec3 | v3 : 平面点v3
Returns
- Plane : 由非共线三个点构造的平面
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0),ae.ARVec3:new_local(1,0,0),ae.ARVec3:new_local(0,0,1))
Plane(copy)
API起始版本:190
Plane Plane(copy)
平面的拷贝构造函数
Parameters
- Plane | copy : Plane对象
Returns
- Plane : 由copy构造的平面
sample:
local copy = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
local plane = ae.Plane:new_local(copy)
set(normal, distance)
API起始版本:190
void set(normal, distance)
设定Plane的法线和由平面沿法线向量到原点的距离,平面法线会被归一化保存和进行计算
Parameters
- ARVec3 | normal : 平面法线方向向量
- float | distacne : 沿平面法线由平面到坐标系原点的距离
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
plane:set(ae.ARVec3:new_local(0,0,1),100)
set(plane)
API起始版本:190
void set(plane)
由Plane设定Plane
Parameters
- Plane | plane : 平面
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
local plane1 = ae.Plane:new_local(ae.ARVec3:new_local(0,2,0), 0)
plane1:set(plane)
normal
API起始版本:190
ARVec3 normal()
获取平面的法线,归一化后保存和参与计算的数值
Returns
- ARVec3 : 平面的法线,归一化后保存和参与计算的数值
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
local normal = plane:normal()
set_normal
API起始版本:190
viod set_normal(normal)
设定平面的法线,归一化保存和参与计算
Parameters
- ARVec3 | normal : 设定平面的法线,归一化保存和参与计算
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
plane:set_normal(ae.ARVec3:new_local(0,0,1))
distacne
API起始版本:190
float distacne()
获取沿平面法线由平面到坐标系原点的距离
Returns
- float : 沿平面法线由平面到坐标系原点的距离
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
local distance = plane:distance()
set_distance
API起始版本:190
viod set_distance(distance)
设定沿平面法线由平面到坐标系原点的距离
Parameters
- float | distance : 沿平面法线由平面到坐标系原点的距离
sample:
local plane = ae.Plane:new_local(ae.ARVec3:new_local(0,1,0), 0)
plane:set_distance(10)