Esempio n. 1
0
        /// <summary>
        /// Draws one bone of a body (joint to joint)
        /// </summary>
        /// <param name="joints">joints to draw</param>
        /// <param name="jointPoints">translated positions of joints to draw</param>
        /// <param name="jointType0">first joint of bone to draw</param>
        /// <param name="jointType1">second joint of bone to draw</param>
        /// <param name="drawingContext">drawing context to draw to</param>
        /// /// <param name="drawingPen">specifies color to draw a specific bone</param>
        private void DrawBone(IReadOnlyDictionary <JointType, Joint> joints, IDictionary <JointType, Point> jointPoints, JointType jointType0, JointType jointType1, DrawingContext drawingContext, Pen drawingPen)
        {
            Joint joint0 = joints[jointType0];
            Joint joint1 = joints[jointType1];

            // If we can't find either of these joints, exit
            if (joint0.TrackingState == TrackingState.NotTracked || joint1.TrackingState == TrackingState.NotTracked)
            {
                return;
            }

            // We assume all drawn bones are inferred unless BOTH joints are tracked
            Pen drawPen = this.inferredBonePen;

            if ((joint0.TrackingState == TrackingState.Tracked) && (joint1.TrackingState == TrackingState.Tracked))
            {
                drawPen = drawingPen;
            }

            var HeadPositon = joints[JointType.Head].Position;
            var FootPostion = joints[JointType.FootLeft].Position;

            var headV = new Vector3D(HeadPositon.X, HeadPositon.Y, HeadPositon.Z);
            var footV = new Vector3D(FootPostion.X, FootPostion.Y, FootPostion.Z);

            var   hei    = headV - footV;
            float height = (float)hei.Length;

            height += (float)0.18;
            Console.WriteLine(hei.Length + 0.18);

            height *= 100;
            byte[] b = BitConverter.GetBytes(height);
            ComPort.ComSetData(b);

            drawingContext.DrawLine(drawPen, jointPoints[jointType0], jointPoints[jointType1]);
        }