}//end method private SimpleBody UpdateJoints(Body b) // COORDINATE MAPPING { var jointList = new SimpleBody(); foreach (var joint in b.Joints.Values) { //if joint isnt tracked ignore if (joint.TrackingState != TrackingState.Tracked) { continue; } // 3D space point var jointPosition = joint.Position; // 2D space point var point = new Point(); var colorPoint = _sensor.CoordinateMapper.MapCameraPointToColorSpace(jointPosition); point.X = float.IsInfinity(colorPoint.X) ? 0 : colorPoint.X; point.Y = float.IsInfinity(colorPoint.Y) ? 0 : colorPoint.Y; var simJoint = new SimpleJoint() { Point = new Vector2((float)point.X / 16, (float)((-1.0 * point.Y) / 9)), //conversion to 16:9 ratio Type = joint.JointType }; // Draw var ellipse = new Ellipse { Fill = Brushes.Blue, Width = Settings.Default.JointSize, Height = Settings.Default.JointSize }; Canvas.SetLeft(ellipse, point.X - ellipse.Width / 2); Canvas.SetTop(ellipse, point.Y - ellipse.Height / 2); canvas.Children.Add(ellipse); jointList.Joints.Add(simJoint); } return(jointList); }
SimpleBody initSimpleBody() { var sb = new SimpleBody(); var joints = new List <SimpleJoint>(); for (int jt = 0; jt <= 24; jt++) { var joint = new SimpleJoint(); joint.Position = Vector3.zero; joint.TrackingState = (int)Kinect.TrackingState.NotTracked; joint.X = 0.0f; joint.Y = 0.0f; joint.Z = 0.0f; joint.W = 0.0f; joints.Add(joint); } sb.Joints = joints; return(sb); }