C# “的测量;“柯林斯女”;点的集合

C# “的测量;“柯林斯女”;点的集合,c#,xna,kinect,C#,Xna,Kinect,背景 我正在使用XNA C#+Kinect制作一个物理教学平台。用户可以使用对象设置场景,包括: 球体 挡块 飞机 显然,有趣的事情是使用不同的手势来表示一个对象。飞机似乎是最容易的,所以我打算从那里开始 输入对象的流程如下所示: 选择对象(通过手势识别) 缩放对象 旋转对象 放置对象 我的想法 这是我的想法。我们追踪上半身的6个关节: 左+右手腕 左+右肘部 左+右肩 如果这组点是共线的,即双臂保持水平,我们会说这是平面的输入手势 如果要使用我的想法,则需要确定点的共线程度,例如,某个

背景

我正在使用XNA C#+Kinect制作一个物理教学平台。用户可以使用对象设置场景,包括:

  • 球体
  • 挡块
  • 飞机
显然,有趣的事情是使用不同的手势来表示一个对象。飞机似乎是最容易的,所以我打算从那里开始

输入对象的流程如下所示:

  • 选择对象(通过手势识别)
  • 缩放对象
  • 旋转对象
  • 放置对象
  • 我的想法

    这是我的想法。我们追踪上半身的6个关节:

    • 左+右手腕
    • 左+右肘部
    • 左+右肩
    如果这组点是共线的,即双臂保持水平,我们会说这是平面的输入手势

    如果要使用我的想法,则需要确定点的共线程度,例如,某个算法将一组点的“共线性”返回为区间[0,1]中的浮点值。然后我可以说,例如,任何>0.9的东西都将被接受为一个平面,允许一些误差空间

    或者,“基于模板的姿势检测”的想法听起来很棒,如下链接所述:

    但据我所知,这似乎是任何手势的通用学习算法。我倾向于自己写一些东西来尝试Kinect作为开始

    问题

    所以。。。有人知道任何现有的算法可以确定一组点的“共线”程度吗?

    “共线”是一个属性,所以它是一个开/关的东西,但是如果你做一些类似于从肩膀到手腕获取向量的事情,你可以测量手臂所代表的“向量”之间的角度……你可以试试Math.SE()对于算法。