轮换的联合立场

时间:2011-09-13 20:49:32

标签: c++ rotation transform kinect

我有以下问题: 我需要改变骨架关节位置,来自Kinect, 联合旋转角度。

2 个答案:

答案 0 :(得分:1)

如果你的意思是“旋转角度”正在考虑三对关节,
您可以获得相对旋转角度,但绝对角度如下。
说关节是A,B和C


  • 您可以定义一个三角形(traingle ABC)。
  • 然后您可以将任意值(比如R)指定为三个角度之一(例如:角度ABC = R)。
  • 由于您有关节位置,您可以使用distance formula计算三角形每个'边'的长度。
  • 使用Cosine(Cos) Rule计算相对角度。
    (例如,BAC = 0.2R,CAB = 3R等)

同样,您可以获得两个关节之间距离恒定的特定角度的变化。(例如:考虑肩 - 肘和肘 - 手腕)。 最初角度ABC是R,然后是1.02R,接下来是1.3R ..等等

答案 1 :(得分:1)

  1. 将每个关节视为向量。
  2. 两个矢量之间的轴角(当前帧中的一个,来自kinect数据。一个处于初始姿势。由于新SDK没有初始姿势,您可能需要将虚拟姿势设置为初始姿势)。
  3. 轴角度的旋转四元数/矩阵
  4. More information on this page