2014-11-21 4 views
0

Я работаю над проектом kinect .. Я пытаюсь найти смещение (разницу между координатами сустава) и отправлять его через сеть с использованием TCP/IP .. Тем не менее, я столкнулся с проблемой доступа к предыдущим значениям сустава .. это мой код до сих пор:Найти смещение (разность между координатами) для Kinect

Joint right = skel.Joints[JointType.HandRight]; 
double right = right.Position.X; 


/*   
I need an operation here to calculate the offset of right before sending it 
Meaning, offset= right(current coordinate)-right(previous coordinate) 
How can I do this in C# ? 
I have tried this operation as mentioned below but it is printing all zeros although I moved (if move, previous - current coordinates shall not be zero) 
*/ 

//--------------------------------------------------------------------------- 
double offset = 0; 
double[] of = new double[2]; 

    for (int i = 0; i < of.Length; i++) 
{ 
    if (i > 2) 
    { 
    break; 
    } 
    of[i] = right; 
    offset = of[1] - of[0];         
    } 

//---------------------------------------------------------------------------  

//convert the data to bytes before sending 
byte[] rh = BitConverter.GetBytes(offset); 

//sending the data to the server 
client.Send(rh, rh.Length); 

ответ

0
// make it global 

    double previousval=-1000; 
    double currentVal=-1000; 

then in your code 

    Joint right = skel.Joints[JointType.HandRight]; 
    currentVal=right.Position.X; 

    double offset = 0; 
    if(prev==-1000) 
     offset = currentVal - currentVal; 
    else 
     offset = previousval - currentVal; 

    previousval=currentVal; 
+0

Благодаря bro..in кода, ты пользуешься смещением = предыдущие токами ? Он должен быть текущим-предыдущим. Как я могу сделать изменения для текущего-предыдущего? Пожалуйста, объясните мне, как работает код ur и что я делал неправильно в своем коде? – Thale

+0

@Thale В вашем цикле for, когда i = 0, вы сохраняете значение с 0-м индексом, а затем снова, когда приходит с i = 1, вы сохраняете одно и то же значение в 1-м индексе, поэтому вы получаете смещение = 0 всегда –