上图是Kinect的重力感应方向图,Kinect右边为X正方向,最大值为1,反方向为-1Kinect下方为Y正方向,最大值为1,反方向为-1Kinect后面为Z正方向,最大值为1,反方向为-1

获取重力值的代码如下:

 
  
  1.  //kinectsensor为连接的Kinect设备对象  
  2. if (kinectsensor != null)  
  3. {  
  4.     Vector4 v4 = kinectsensor.AccelerometerGetCurrentReading();  
  5.     this.label3.Text ="   X:" + v4.X + "   Y:" + v4.Y + "   Z:" + v4.Z;  
  6. }  

重力感觉主要是让程序获取Kinect所放置的环境,好来调整获取的骨骼坐标,让数据更准确。

 

Kinect在垂直方向上可以上下各调27度,可以通过调整Kinect的马达来实现,这样可以增加Kinect在垂直方向的角度。代码如下: 

 

 
  
  1. //kinectsensor为连接的Kinect设备对象  
  2.   if (kinectsensor != null)  
  3.    {  
  4.        kinectsensor.ElevationAngle = Convert.ToInt32(this.trackBar1.Value); //注意赋的值为-25到25的整数,trackBar1为一个最大值为25,最小值为-25,步长为1的一个TrackBar控件  
  5.        System.Threading.Thread.Sleep(1350); //马达的调整最好要间隔一段时间,通常大于1350毫秒  
  6. }