コード例 #1
0
ファイル: Extensao.cs プロジェクト: nunesrenato86/TCC
        public static void DesenharEsqueletoUsuario(
            this SkeletonFrame pQuadro,
            KinectSensor pKinectSensor,
            Canvas pCanvasParaDesenhar)
        {
            if (pKinectSensor == null)
                throw new ArgumentNullException("kinectSensor");

            if (pCanvasParaDesenhar == null)
                throw new ArgumentNullException("canvasParaDesenhar");

            Skeleton lEsqueleto = ObterEsqueletoUsuario(pQuadro);

            if (lEsqueleto != null)
            {
                EsqueletoUsuarioAuxiliar lEsqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(pKinectSensor);

                foreach (BoneOrientation lOsso in lEsqueleto.BoneOrientations)
                {
                    lEsqueletoUsuarioAuxiliar.DesenharOsso(
                        lEsqueleto.Joints[lOsso.StartJoint],
                        lEsqueleto.Joints[lOsso.EndJoint],
                        pCanvasParaDesenhar);

                    lEsqueletoUsuarioAuxiliar.DesenharArticulacao(
                        lEsqueleto.Joints[lOsso.EndJoint],
                        pCanvasParaDesenhar);
                }
            }
        }
コード例 #2
0
ファイル: Extensao.cs プロジェクト: nunesrenato86/TCC
        public static void DesenharMaosUsuario(
            this SkeletonFrame pQuadro,
            KinectSensor pKinectSensor,
            Canvas pCanvasParaDesenhar,
            Brush pCorDesenho,
            JointType pMaoParaDesenhar)
        {
            if (pKinectSensor == null)
                throw new ArgumentNullException("kinectSensor");

            if (pCanvasParaDesenhar == null)
                throw new ArgumentNullException("canvasParaDesenhar");

            Skeleton lEsqueleto = ObterEsqueletoUsuario(pQuadro);

            if (lEsqueleto != null)
            {
                EsqueletoUsuarioAuxiliar lEsqueletoUsuarioAuxiliar = new EsqueletoUsuarioAuxiliar(pKinectSensor);

                //desenha mao direita
                //lEsqueletoUsuarioAuxiliar.DesenharUmaMaoPintura(
                //    lEsqueleto.Joints[JointType.HandRight],
                //    pCanvasParaDesenhar,
                //    Brushes.Aquamarine);

                //desenha mao esquerda
                lEsqueletoUsuarioAuxiliar.DesenharUmaMaoPintura(
                        //lEsqueleto.Joints[JointType.HandRight],
                        lEsqueleto.Joints[pMaoParaDesenhar],
                        pCanvasParaDesenhar,
                        pCorDesenho);

            }
        }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
        private void FuncoesEsqueletoUsuario(SkeletonFrame quadro)
        {
            if (quadro == null)
            {
                return;
            }

            using (quadro)
            {
                Skeleton esqueletoUsuario = quadro.ObterEsqueletoUsuario();

                if (btnDesenhar.IsChecked)
                {
                    Skeleton[] esqueletos = new Skeleton[6];
                    quadro.CopySkeletonDataTo(esqueletos);
                    fluxoInteracao.ProcessSkeleton(esqueletos, kinect.AccelerometerGetCurrentReading(), quadro.Timestamp);
                    EsqueletoUsuarioAuxiliar esqueletoAuxiliar = new EsqueletoUsuarioAuxiliar(kinect);

                    if (configuracaoMaoDireita.DesenhoAtivo)
                    {
                        esqueletoAuxiliar.InteracaoDesenhar(esqueletoUsuario.Joints[JointType.HandRight], canvasDesenho, configuracaoMaoDireita);
                    }

                    if (configuracaoMaoEsquerda.DesenhoAtivo)
                    {
                        esqueletoAuxiliar.InteracaoDesenhar(esqueletoUsuario.Joints[JointType.HandLeft], canvasDesenho, configuracaoMaoEsquerda);
                    }
                }
                else
                {
                    foreach (IRastreador rastreador in rastreadores)
                    {
                        rastreador.Rastrear(esqueletoUsuario);
                    }

                    if (btnEsqueletoUsuario.IsChecked)
                    {
                        quadro.DesenharEsqueletoUsuario(kinect, canvasKinect);
                    }
                }
            }
        }
コード例 #5
0
        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);
                }
            }
        }
コード例 #6
0
        private void DesenharEmTela(SkeletonFrame quadro, Skeleton primeiroUsuario)
        {
            Skeleton[] esqueletos = new Skeleton[6];
            quadro.CopySkeletonDataTo(esqueletos);

            fluxoInteracao.ProcessSkeleton(esqueletos, Kinect.AccelerometerGetCurrentReading(), quadro.Timestamp);
            EsqueletoUsuarioAuxiliar esqueletoAuxiliar = new EsqueletoUsuarioAuxiliar(Kinect);

            if (configuracaoMaoDireita.DesenhoAtivo)
                esqueletoAuxiliar.InteracaoDesenhar(primeiroUsuario.Joints[JointType.HandRight], canvasDesenho, configuracaoMaoDireita);
            if (configuracaoMaoEsquerda.DesenhoAtivo)
                esqueletoAuxiliar.InteracaoDesenhar(primeiroUsuario.Joints[JointType.HandLeft], canvasDesenho, configuracaoMaoEsquerda);
        }