2012-06-28 2 views
1

Я работаю над приложением wpf, используя kinect для windows sdk ver 1.5, в котором поддерживается ориентация суставов. Я вычислил углы между скелетными суставами, в которых угол вычисляется на основе исходной кости, как показано на прилагаемых изображениях, проблема заключается в том, что угол вычисляется без знака, определяющего его направление, независимо от того, вверх ли он «+ ve» или «вверх», -ve "вниз, и мне нужно обнаружить это или поставить знак, например + ve, если вверх и -ve, если вниз, Как показано на прилагаемых фотографиях, первый рис показывает угол = 4, а затем, если я переместил вверх угол будет 45, и если бы я двигался вниз, то угол был бы 48 не -48, все, что мне нужно знать, - это как дифференцировать и направление движения, в котором угол будет + угол, если вверх и вниз, если вниз. вот ссылка на изображение «нужно нажать рядом с тремя фотографии»Угловое направление между соединениями Kinect sdk ver 1.5

http://imageshack.us/photo/my-images/267/64483060.png

Большое спасибо

ответ

0

Вычислить декартово произведение. Знак креста даст вам направление.

+0

как вычислить декартово произведение в то время как я использую функцию SDk, которая дает ориентацию сустава? я имею в виду его встроенную функцию, i; m не вычисляя ее как два вектора, ... – Tak

+0

Рассчитать поперечное произведение между вектором направления суставов. Вектор направления = JointPosition - parentJoinPosition –

+0

ok, так, например, если правое плечо расположено в x, y, z (10,10,10) и в правом локте, расположенном в (20,20,20), что мне делать? большое спасибо – Tak

0

Вы должны предоставить нам некоторый код, чтобы узнать, что не так. Вы использовали Math.Atan? Возможно, вы должны использовать Math.Atan2 вместо этого. Между этими двумя есть различия. Посмотрите:

http://en.wikipedia.org/wiki/Arctangent

http://en.wikipedia.org/wiki/Atan2

Смежные вопросы