К сожалению об этом, но мне нужно немного конформацию об этой функции и вычислениеKinect Joint Angle Расчет
Я в настоящее время эти векторы:
Vector3D ElbowLeft = new Vector3D(body.Joints[JointType.ElbowLeft].Position.X, body.Joints[JointType.ElbowLeft].Position.Y, body.Joints[JointType.ElbowLeft].Position.Z);
Vector3D WristLeft = new Vector3D(body.Joints[JointType.WristLeft].Position.X, body.Joints[JointType.WristLeft].Position.Y, body.Joints[JointType.WristLeft].Position.Z);
Vector3D ShoulderLeft = new Vector3D(body.Joints[JointType.ShoulderLeft].Position.X, body.Joints[JointType.ShoulderLeft].Position.Y, body.Joints[JointType.ShoulderLeft].Position.Z);
Vector3D Head = new Vector3D(body.Joints[JointType.Head].Position.X, body.Joints[JointType.Head].Position.Y, body.Joints[JointType.Head].Position.Z);
Vector3D Neck = new Vector3D(body.Joints[JointType.Neck].Position.X, body.Joints[JointType.Neck].Position.Y, body.Joints[JointType.Neck].Position.Z);
Vector3D SpineShoulder = new Vector3D(body.Joints[JointType.SpineShoulder].Position.X, body.Joints[JointType.SpineShoulder].Position.Y, body.Joints[JointType.SpineShoulder].Position.Z);
Я расчетливый угол между двумя векторами, используя эту функцию
public double AngleBetweenTwoVectors(Vector3D vectorA, Vector3D vectorB)
{
double dotProduct = 0.0;
vectorA.Normalize();
vectorB.Normalize();
dotProduct = Vector3D.DotProduct(vectorA, vectorB);
return (double)Math.Acos(dotProduct)/Math.PI * 180;
}
И я называю это так:
double LeftElbowAngle = AngleBetweenTwoVectors(ElbowLeft - ShoulderLeft, ElbowLeft - WristLeft);
double NeckAngle = AngleBetweenTwoVectors(Neck - Head, Neck - SpineBase);
Правильно ли это? Я просто сомневаюсь в себе, потому что, когда я положил руку прямо или встал прямо, он обнаружил угол около 170 - 175, а не 180. На моей шее и на локтевом суставе
Помните, что у вас есть 3 размеров там, получая руку или голова совершенно прямую мощь не очень легко. Как выглядят другие углы? – Chris
Хорошо Левый/правый локтевой сустав - это 170-178, с тем, что кажется мне прямой рукой. Шея также примерно такая же, когда я стою совершенно прямо. То же самое с колени для ноги. И я не понял, как делать вычисления запястья, поскольку Kinect также соединяет запястье с большим пальцем ... Мой друг помог мне подтвердить, что все математически правильно. – ShatteredPheonix
Как насчет 45, 90 и 135 градусов? В порядке? – Chris