使用Kinect模拟转向控制

时间:2013-12-27 06:08:17

标签: c# wpf 3d

我想用Kinect来模拟一个手势,这个手势可以让用户伸出双手,好像在空中举行假想的转向一样。我想计算两只手之间形成的矢量的旋转角度,并根据旋转量(向左或向右)我想要按键盘按键。无法弄清楚如何获得旋转角度。我在wpf应用程序中使用c#。请任何帮助将不胜感激。

Vector3 hr_hl = KinectHelper.VectorBetween(skeleton, JointType.HandRight, JointType.HandLeft);
Vector3 axis_spine = new Vector3(spine.Position.Z);
float angle = (float)Math.Acos(Vector3.Dot(hr_hl, axis_spine));
Vector3 axis = Vector3.Cross(axis_spine, hr_hl);
Quaternion rot = Quaternion.CreateFromAxisAngle(axis, angle);
float rot_radian = KinectHelper.QuaternionAngle(rot);

简而言之,我想要连接左右手的矢量滚动角度,我的脊柱Z轴是旋转轴。

0 个答案:

没有答案