Exemple #1
0
        public static void DrawJoint(this Canvas canvas, Joint joint, KinectSensor sensor)
        {
            if (joint.TrackingState == TrackingState.NotTracked) return;
            Color c;
            if (steadyFlag)
                c = Colors.CadetBlue;
            else
                c = Colors.SandyBrown;
            Boolean inferred = false;
            if (joint.TrackingState == TrackingState.Inferred)
            {
                c = Colors.Gray;
                inferred = true;
            }

            // joint = joint.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);
            Point p = scalePoint(joint.Project(sensor), canvas.ActualWidth, canvas.ActualHeight);
            // Console.WriteLine("Position: " + p.X + " " + p.Y + "canvas size: " + canvas.Width + " " + canvas.Height);
            // WirteText(canvas, joint.Project(sensor), "Position: " + joint.Project(sensor).X + ":" + joint.Project(sensor).Y);
            DrawPoint(canvas, p, c, inferred);
            // WirteText(canvas, p, "Position: " + joint.Project(sensor).X + ":" + joint.Project(sensor).Y);
        }
Exemple #2
0
        public static void DrawBone(this Canvas canvas, Joint first, Joint second, KinectSensor sensor)
        {
            if (first.TrackingState == TrackingState.NotTracked || second.TrackingState == TrackingState.NotTracked) return;

            // first = first.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);
            // second = second.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);

            Color c;
            if (steadyFlag)
                c = Colors.LightSeaGreen;
            else
                c = Colors.Yellow;
            Boolean inferred = false;
            if (first.TrackingState == TrackingState.Inferred || second.TrackingState == TrackingState.Inferred)
            {
                c = Colors.Black;
                inferred = true;
            }

            Point firstP = scalePoint(first.Project(sensor), canvas.ActualWidth, canvas.ActualHeight);
            Point secondP = scalePoint(second.Project(sensor), canvas.ActualWidth, canvas.ActualHeight);
            DrawLine(canvas, firstP, secondP, c, inferred);
        }
Exemple #3
0
        private static void DrawWrongJoint(this Canvas canvas, Joint joint, KinectSensor sensor)
        {
            if (joint.TrackingState == TrackingState.NotTracked) return;
            Color c = Colors.Red;

            double alpha = 1.0;
            if (joint.TrackingState == TrackingState.Inferred)
            {
                alpha = 0.75;
            }

            // joint = joint.ScaleTo(canvas.ActualWidth, canvas.ActualHeight);
            Point p = scalePoint(joint.Project(sensor), canvas.ActualWidth, canvas.ActualHeight);
            if (!inCanvas(canvas, p))
                return;

            SolidColorBrush fill = new SolidColorBrush(c);
            fill.Opacity = alpha;
            Ellipse ellipse = new Ellipse
            {
                Width = 20,
                Height = 20,
                Fill = fill
            };
            Canvas.SetLeft(ellipse, p.X - ellipse.Width / 2);
            Canvas.SetTop(ellipse, p.Y - ellipse.Height / 2);

            canvas.Children.Add(ellipse);
        }