Exemplo n.º 1
0
        void kinect_AllFrameReady( KinectUpdateFrameData e )
        {
            try {
                TextMessage.Text = "";

                if ( !e.IsAllUpdated ) {
                    return;
                }

                ImageColor.Source = e.ColorFrame.ToBitmapSource();

                var skeletons = e.SkeletonFrame.GetTrackedSkeleton();
                if ( skeletons.Count() != 2 ) {
                    return;
                }

                var player1 = skeletons.First().Joints[JointType.Head];
                var player2 = skeletons.Last().Joints[JointType.Head];
                if ( !player1.IsTrackingOrInferred() || !player2.IsTrackingOrInferred() ) {
                    return;
                }

                var distance = (int)(Math.Sqrt( Math.Pow( player2.Position.X - player1.Position.X, 2 ) +
                                                Math.Pow( player2.Position.Y - player1.Position.Y, 2 ) +
                                                Math.Pow( player2.Position.Z - player1.Position.Z, 2 ) ) * 1000);

                TextMessage.Text = distance.ToString();

                udpWriter.Send( new OscBundle( 0, new OscElement( "/distance", distance ) ) );
            }
            catch ( Exception ex ) {
                Trace.WriteLine( ex.Message );
            }
        }
        /// <summary>
        /// Color,Depth,Skeletonの更新
        /// </summary>
        /// <param name="e"></param>
        void kinect_AllFrameReady( KinectUpdateFrameData e )
        {
            try {
                if ( !e.IsAllUpdated ) {
                    return;
                }

                imageRgb.Source = e.ColorFrame.ToBitmapSource();
                imageDepth.Source = e.DepthFrame.ToBitmapSource();

                canvasSkeleton.Children.Clear();
                foreach ( var skeleton in e.SkeletonFrame.GetTrackedOrPositionOnlySkeleton() ) {
                        skeletonDrawer.Draw( skeleton );
                }
            }
            catch ( Exception ex ) {
                MessageBox.Show( ex.Message );
            }
        }
        /// <summary>
        /// Color,Depth,Skeletonの更新
        /// </summary>
        /// <param name="e"></param>
        void kinect_AllFrameReady(KinectUpdateFrameData e)
        {
            try {
                if (!e.IsAllUpdated)
                {
                    return;
                }

                imageRgb.Source   = e.ColorFrame.ToBitmapSource();
                imageDepth.Source = e.DepthFrame.ToBitmapSource();

                canvasSkeleton.Children.Clear();
                foreach (var skeleton in e.SkeletonFrame.GetTrackedOrPositionOnlySkeleton())
                {
                    skeletonDrawer.Draw(skeleton);
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 4
0
        void kinect_AllFrameReady(KinectUpdateFrameData e)
        {
            try {
                TextMessage.Text = "";

                if (!e.IsAllUpdated)
                {
                    return;
                }

                ImageColor.Source = e.ColorFrame.ToBitmapSource();

                var skeletons = e.SkeletonFrame.GetTrackedSkeleton();
                if (skeletons.Count() != 2)
                {
                    return;
                }

                var player1 = skeletons.First().Joints[JointType.Head];
                var player2 = skeletons.Last().Joints[JointType.Head];
                if (!player1.IsTrackingOrInferred() || !player2.IsTrackingOrInferred())
                {
                    return;
                }

                var distance = (int)(Math.Sqrt(Math.Pow(player2.Position.X - player1.Position.X, 2) +
                                               Math.Pow(player2.Position.Y - player1.Position.Y, 2) +
                                               Math.Pow(player2.Position.Z - player1.Position.Z, 2)) * 1000);

                TextMessage.Text = distance.ToString();

                udpWriter.Send(new OscBundle(0, new OscElement("/distance", distance)));
            }
            catch (Exception ex) {
                Trace.WriteLine(ex.Message);
            }
        }
 void Sensor_AllFramesReady( object sender, AllFramesReadyEventArgs e )
 {
     using ( KinectUpdateFrameData data = new KinectUpdateFrameData( e ) ) {
         if ( AllFrameReady != null ) {
             AllFrameReady( data );
         }
     }
 }