Esempio n. 1
0
 private void OnPlayPiano(FingerIdentification Fingers)
 {
     if (Fingers == null)
         return;
     foreach (var i in Enum.GetValues(typeof(FingerType)))
     {
         FingerType type = (FingerType)i;
         if (Fingers[type].TrackingState == FingerTrackingState.Tracked)
         {
             Dict[type].Add(Fingers[type].Position);
             if (Dict[type].Count > 30)
             {
                 int index = Dict[type].Count - 1;
                 if (Dict[type][index - 30].Z - Dict[type][index].Z > 0.015d)    //当前点和第前30个点,指尖点击距离超过15mm
                 {
                     SoundPlayer soundPlayer;
                     switch (type)
                     {
                         case FingerType.ThumbRight:
                             soundPlayer = new SoundPlayer(Kinect.Joy.Properties.Resources._08___C);
                             soundPlayer.Play();
                             break;
                         case FingerType.IndexRight:
                             soundPlayer = new SoundPlayer(Kinect.Joy.Properties.Resources._09___D);
                             soundPlayer.Play();
                             break;
                         case FingerType.MiddleRight:
                             soundPlayer = new SoundPlayer(Kinect.Joy.Properties.Resources._10___E);
                             soundPlayer.Play();
                             break;
                         case FingerType.RingRight:
                             soundPlayer = new SoundPlayer(Kinect.Joy.Properties.Resources._11___F);
                             soundPlayer.Play();
                             break;
                         case FingerType.LittleRight:
                             soundPlayer = new SoundPlayer(Kinect.Joy.Properties.Resources._12___G);
                             soundPlayer.Play();
                             break;
                     }
                     Dict[type].Clear();
                 }
             }
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Draw Fingertips
        /// </summary>
        /// <param name="Fingers"></param>
        private void OnDrawFingerTips(FingerIdentification Fingers)
        {
            if (Fingers == null)
                return;
            if (Fingers[FingerType.ThumbRight].TrackingState == FingerTrackingState.Tracked)
            {
                Ellipse ellipse = new Ellipse() { Stroke = new SolidColorBrush(FingerColor[0]), StrokeThickness = 5, Height = 10, Width = 10 };
                this.Skel_Canvas.Children.Add(ellipse);
                Point2D position = Fingers.GetPoint2Position(FingerType.ThumbRight);
                Canvas.SetLeft(ellipse, position.X);
                Canvas.SetTop(ellipse, position.Y);
            }

            if (Fingers[FingerType.IndexRight].TrackingState == FingerTrackingState.Tracked)
            {
                Ellipse ellipse = new Ellipse() { Stroke = new SolidColorBrush(FingerColor[1]), StrokeThickness = 5, Height = 10, Width = 10 };
                this.Skel_Canvas.Children.Add(ellipse);
                Point2D position = Fingers.GetPoint2Position(FingerType.IndexRight);

                Canvas.SetLeft(ellipse, position.X);
                Canvas.SetTop(ellipse, position.Y);
            }
            if (Fingers[FingerType.MiddleRight].TrackingState == FingerTrackingState.Tracked)
            {
                Ellipse ellipse = new Ellipse() { Stroke = new SolidColorBrush(FingerColor[2]), StrokeThickness = 5, Height = 10, Width = 10 };
                this.Skel_Canvas.Children.Add(ellipse);
                Point2D position = Fingers.GetPoint2Position(FingerType.MiddleRight);
                Canvas.SetLeft(ellipse, position.X);
                Canvas.SetTop(ellipse, position.Y);
            }
            if (Fingers[FingerType.RingRight].TrackingState == FingerTrackingState.Tracked)
            {
                Ellipse ellipse = new Ellipse() { Stroke = new SolidColorBrush(FingerColor[3]), StrokeThickness = 5, Height = 10, Width = 10 };
                this.Skel_Canvas.Children.Add(ellipse);
                Point2D position = Fingers.GetPoint2Position(FingerType.RingRight);

                Canvas.SetLeft(ellipse, position.X);
                Canvas.SetTop(ellipse, position.Y);
            }
            if (Fingers[FingerType.LittleRight].TrackingState == FingerTrackingState.Tracked)
            {
                Ellipse ellipse = new Ellipse() { Stroke = new SolidColorBrush(FingerColor[4]), StrokeThickness = 5, Height = 10, Width = 10 };
                this.Skel_Canvas.Children.Add(ellipse);
                Point2D position = Fingers.GetPoint2Position(FingerType.LittleRight);
                Canvas.SetLeft(ellipse, position.X);
                Canvas.SetTop(ellipse, position.Y);
            }
        }
Esempio n. 3
0
 private void Add(FingerType type, FingerIdentification Fingers)
 {
     if (Fingers[type].TrackingState == FingerTrackingState.Tracked)
     {
         Dict[type].Add(Fingers[type].Position);
     }
 }
Esempio n. 4
0
 private void OnDrawSkeletonAndFingers(Skeleton sk, FingerIdentification Fingers)
 {
     this.Skel_Canvas.Children.Clear();
     OnDrawSkeleton(sk);
     OnDrawFingerTips(Fingers);
 }