Vector3f vtc2 = Vector3f (pt1.x-pt3.x,pt1.y-pt3.y,0); //对角线2
double c1,c2,ratio12;
double vct_min,cross_vct_max;
c1 = Magnitude(vtc1);
c2 = Magnitude(vtc2);
if (lenvct1>lenvct2)
vct_min = lenvct2;
else
vct_min = lenvct1;
if(c1>c2)
cross_vct_max = c1;
else
cross_vct_max = c2;
ratio12 = cross_vct_max/vct_min;
if (ratio12<StandCrossLenRatio)
result = true ;
else
result = false;
}
return result;
}
3.4 人体骨架的数据结构
为了得到运动的各个身体部分数据信息,我们需要存储一些运动信息,主要有:
骨骼ID骨骼关节的当前位置;r_x,r_y,r_z
骨骼之间的关系,例如手臂是躯干的延伸,而左小臂是左臂的延伸;PID,CID
我们可以通过下图来了解骨骼之间的结构关系
存放3ds文件位置;file_name_3ds
3ds模型的初始化方向;这个是比较抽象一点的概念,它是指从父节点指向子节点的方向,例如左小臂的初始位置是平放向下,那么对应的矢量就是 (-0.2,-1,0)
以下是数据结构部分: OpenGL人体运动识别及模型模拟+文献综述(6):http://www.751com.cn/tongxin/lunwen_6467.html