您的位置:首页 > 其它

文章标题

2015-09-25 09:58 741 查看
InteractionBox类(Leap:: InteractionBox)



这个类代表了一个完全处于Leap Motion控制器视线内的盒状区域。InteractionBox是一个轴对齐的直角棱镜,在它的的盒中提供了手、手指和工具的归一化坐标。这个类使得把Leap Motion坐标系下的坐标映射为2D或3D坐标变的很容易。这个区域定义为一个中心和x,y,z轴三个维度。从Frame对象中可以得到一个InteractionBox对象。

Vector center(): 表示InteractionBox的中心(设备的坐标,毫米为单位),这个点到合资的各边等距。

用法:Vector boxCenter=InteractionBox.center();

Vector normalizePoint(const Vector & Position,bool clamp =true): 表示用这个盒子归一化一个点的坐标。Leap Motion坐标系下的坐标被转化到0到1的范围内,即InteractionBox的最小值映射为0,InteractionBox的最大值映射为1.其中参数position是输入位置的设备坐标,参数clamp判断当输入位置在InteractionBox之外,是否要把输出的值限制在0到1的范围内,默认为true。

Vector denormalizePoint(const Vector & normalizePosition): 把由归一化的InteractionBox坐标定义的位置转化为设备坐标(毫米为单位)。这个函数是normalizePoint()的逆。

用法:InteractionBox interactionBox = frame.interactionBox();

Vector point = Vector(100, 75, -125);

Vector normalizedCoordinates = interactionBox.normalizePoint(point, false);

Vector denormalizedCoordinates = interactionBox.denormalizePoint(normalized

Coordinates);

// denormalizedCoordinates == point

float depth(): 表示InteractionBox的深度(毫米为单位)。

用法:float boxDimensionAlongZAxis = interactionBox.depth();

float height(): 表示InteractionBox的高度(毫米为单位)。

用法:float boxDimensionAlongYAxis = interactionBox.height();

float width(): 表示InteractionBox的宽度(毫米为单位)。

用法:float boxDimensionAlongXAxis = interactionBox.width();

bool isValid(): 判断这是否是个有效的InteractionBox对象。如果这个对象包含有效的数据,返回True。

bool operator!=(const InteractionBox & other): 比较InteractionBox对象是否不相等。两个InteractionBox对象相等当且仅当都表示同样的一个InteractionBox,而且都是有效的。

bool operator==(const Vector & other): 比较InteractionBox对象是否相等。

std::string toString(): 表示一个包含对InteractionBox对象的简单描述的字符串。

译自:https://developer.leapmotion.com/documentation/cpp/api/Leap.InteractionBox.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leap motion