public static void DesenharEsqueletoUsuario(this SkeletonFrame quadro, KinectSensor kinectSensor, Canvas canvasParaDesenhar) { if (kinectSensor == null) { throw new ArgumentNullException("kinectSensor"); } if (canvasParaDesenhar == null) { throw new ArgumentNullException("canvasParaDesenhar"); } Skeleton esqueleto = ObterEsqueletoUsuario(quadro); if (esqueleto != null) { EsqueletoUsuarioAuxiliar esqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(kinectSensor); foreach (BoneOrientation osso in esqueleto.BoneOrientations) { esqueletoUsuarioAuxiliar.DesenharOsso(esqueleto.Joints[osso.StartJoint], esqueleto.Joints[osso.EndJoint], canvasParaDesenhar); esqueletoUsuarioAuxiliar.DesenharArticulacao(esqueleto.Joints[osso.EndJoint], canvasParaDesenhar, esqueleto); } } }
public static void DesenharEsqueletoUsuario ( this SkeletonFrame quadro,KinectSensor kinectSensor, Canvas canvasParaDesenhar ) { if (kinectSensor == null) throw new ArgumentNullException("kinectSensor"); if (canvasParaDesenhar == null) throw new ArgumentNullException("canvasParaDesenhar"); Skeleton esqueleto = ObterEsqueletoUsuario(quadro); if (esqueleto != null) { EsqueletoUsuarioAuxiliar esqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(kinectSensor); foreach (Joint articulacao in esqueleto.Joints) esqueletoUsuarioAuxiliar .DesenharArticulacao(articulacao, canvasParaDesenhar); } }
private void DesenharEsqueletoUsuario(SkeletonFrame quadro) { if (quadro == null) return; using (quadro) { Skeleton[] esqueletos = new Skeleton[quadro.SkeletonArrayLength]; quadro.CopySkeletonDataTo(esqueletos); IEnumerable<Skeleton> esqueletosRastreados = esqueletos.Where(esqueleto => esqueleto.TrackingState == SkeletonTrackingState.Tracked); if (esqueletosRastreados.Count() > 0) { Skeleton esqueleto = esqueletosRastreados.First(); EsqueletoUsuarioAuxiliar funcoesEsqueletos = new EsqueletoUsuarioAuxiliar(kinect); funcoesEsqueletos.DesenharArticulacao(esqueleto.Joints[JointType.HandRight], canvasKinect); funcoesEsqueletos.DesenharArticulacao(esqueleto.Joints[JointType.HandLeft], canvasKinect); } } }
public static void DesenharEsqueletoUsuario ( this SkeletonFrame quadro,KinectSensor kinectSensor, Canvas canvasParaDesenhar ) { if (kinectSensor == null) throw new ArgumentNullException("kinectSensor"); if (canvasParaDesenhar == null) throw new ArgumentNullException("canvasParaDesenhar"); Skeleton esqueleto = ObterEsqueletoUsuario(quadro); if (esqueleto != null) { EsqueletoUsuarioAuxiliar esqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(kinectSensor); foreach (BoneOrientation osso in esqueleto.BoneOrientations) { esqueletoUsuarioAuxiliar .DesenharOsso(esqueleto.Joints[osso.StartJoint], esqueleto.Joints[osso.EndJoint], canvasParaDesenhar); esqueletoUsuarioAuxiliar.DesenharArticulacao(esqueleto.Joints[osso.EndJoint], canvasParaDesenhar); } } }
private void FuncoesEsqueletoUsuario(SkeletonFrame quadro) { if (quadro == null) return; using (quadro) { Skeleton esqueletoUsuario = quadro.ObterEsqueletoUsuario(); if (esqueletoUsuario != null) { Joint center = esqueletoUsuario.Joints[JointType.HipCenter]; Joint head = esqueletoUsuario.Joints[JointType.Head]; cabecax.Text = Math.Round(head.Position.X, 2).ToString(); cabecaz.Text = Math.Round(head.Position.Z, 2).ToString(); ombroz.Text = Math.Round(center.Position.Z, 2).ToString(); ombrox.Text = Math.Round(center.Position.X, 2).ToString(); cabecay.Text = Math.Round(head.Position.Y, 2).ToString(); ombroy.Text = Math.Round(center.Position.Y, 2).ToString(); EsqueletoUsuarioAuxiliar esqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(kinect); foreach(BoneOrientation osso in esqueletoUsuario.BoneOrientations) { esqueletoUsuarioAuxiliar.DesenharOsso(esqueletoUsuario.Joints[osso.StartJoint], esqueletoUsuario.Joints[osso.EndJoint], cnv); esqueletoUsuarioAuxiliar.DesenharArticulacao(esqueletoUsuario.Joints[osso.EndJoint],cnv); } } foreach (IRastreador rastreador in rastreadores) { rastreador.Rastrear(esqueletoUsuario); } } }