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); } }
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 ); } } }