Leap Motion API类库:InteractionBox

本文介绍了如何使用LeapMotion控制器中的InteractionBox类实现手指坐标的规范化,并将其映射到绘图画布区域,便于进行二维或三维坐标系中的绘图操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.InteractionBox

    interactionbox类表示一个可视的,完全在Leap Motion控制器内的,盒子形状的区域

    这个交互的盒子是一个轴对齐的矩形棱镜,在这个盒子中,提供了标准化的手,手指和工具,及他们的坐标。

    可以使它更容易在二维或三维坐标系中应用绘图。

    interactionbox区域由一个中心沿X,Y和Z轴的定义。

    下面的例子演示了如何使用InteractionBox将一个手指的坐标映射到绘图画布的区域中:

<canvas id="displayArea" width="200" height="100" style="background:#dddddd;"></canvas>
<script>
var canvasElement = document.getElementById("displayArea");
var displayArea = canvasElement.getContext("2d");

var controller = new Leap.Controller();
controller.on("frame", function(frame){
    if(frame.pointables.length > 0)
    {
        canvasElement.width = canvasElement.width; //clear
        
        //Get a pointable and normalize the tip position
        var pointable = frame.pointables[0];
        var interactionBox = frame.interactionBox;
        var normalizedPosition = interactionBox.normalizePoint(pointable.tipPosition, true);
        
        // Convert the normalized coordinates to span the canvas
        var canvasX = canvasElement.width * normalizedPosition[0];
        var canvasY = canvasElement.height * (1 - normalizedPosition[1]);
        //we can ignore z for a 2D context
        
        displayArea.strokeText("(" + canvasX.toFixed(1) + ", " + canvasY.toFixed(1) + ")", canvasX, canvasY);
    }
});
controller.connect();
</script>

    (1)构造器    InteractionBox()

    可以不创建自己的interactionbox对象。从框架得到了有效的interactionbox。interactionbox()。

    此构造函数创建无效interactionbox的对象。

转载于:https://my.oschina.net/chumingcheng/blog/610951

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值