Leap Motion API类库:InteractionBox

原创
2016/01/28 15:30
阅读数 236

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的对象。

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部