Beispiel #1
0
        public void DrawJointPoint(PaintEventArgs e)
        {
            //foreach (Player p in player)
            for (int i = 0; i < TotalPlayerNum; i++)
            {
                Player p = player[i];
                try
                {
                    if (p == null)
                    {
                        continue;
                    }
                    int idx = p.GetPlayerIndex();
                    jointPen.Color = p.GetPlayerColor();

                    JointPointGroup jpGroup = p.GetJointPointGroup();

                    e.Graphics.DrawEllipse(jointPen, jpGroup.Head.X, jpGroup.Head.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.ShoulderCenter.X, jpGroup.ShoulderCenter.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.ShoulderLeft.X, jpGroup.ShoulderLeft.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.ShoulderRight.X, jpGroup.ShoulderRight.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.Spine.X, jpGroup.Spine.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.ElbowLeft.X, jpGroup.ElbowLeft.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.ElbowRight.X, jpGroup.ElbowRight.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.WristLeft.X, jpGroup.WristLeft.Y, EllipseSize, EllipseSize);
                    e.Graphics.DrawEllipse(jointPen, jpGroup.WristRight.X, jpGroup.WristRight.Y, EllipseSize, EllipseSize);
                }
                catch (Exception ee) { ee.ToString(); }
            }
        }
Beispiel #2
0
        private void EnqJointPointGroup(JointPointGroup jpg)
        {
            jpgQ.Enqueue(jpg);
            if (jpgQ.Count > jpgQmax)
            {
                jpgQ.Dequeue();
            }
            this.curr_jpg = jpgQ.Last();

            JointInfo j = new JointInfo();


            float meanX = 0;
            float meanY = 0;

            float varianceX = 0;
            float varianceY = 0;

            meanX += jpg.Head.X;
            meanX += jpg.Spine.X;
            meanX += jpg.ShoulderCenter.X;
            meanX += jpg.ShoulderLeft.X;
            meanX += jpg.ShoulderRight.X;
            meanX += jpg.ElbowLeft.X;
            meanX += jpg.ElbowRight.X;
            meanX += jpg.WristLeft.X;
            meanX += jpg.WristRight.X;

            meanX /= numOfJoints;



            varianceX += (meanX - (float)jpg.Head.X) * (meanX - (float)jpg.Head.X);
            varianceX += (meanX - (float)jpg.Spine.X) * (meanX - (float)jpg.Spine.X);
            varianceX += (meanX - (float)jpg.ShoulderCenter.X) * (meanX - (float)jpg.ShoulderCenter.X);
            varianceX += (meanX - (float)jpg.ShoulderLeft.X) * (meanX - (float)jpg.ShoulderLeft.X);
            varianceX += (meanX - (float)jpg.ShoulderRight.X) * (meanX - (float)jpg.ShoulderRight.X);
            varianceX += (meanX - (float)jpg.ElbowLeft.X) * (meanX - (float)jpg.ElbowLeft.X);
            varianceX += (meanX - (float)jpg.ElbowRight.X) * (meanX - (float)jpg.ElbowRight.X);
            varianceX += (meanX - (float)jpg.WristLeft.X) * (meanX - (float)jpg.WristLeft.X);
            varianceX += (meanX - (float)jpg.WristRight.X) * (meanX - (float)jpg.WristRight.X);

            varianceX /= numOfJoints;



            meanY += jpg.Head.Y;
            meanY += jpg.Spine.Y;
            meanY += jpg.ShoulderCenter.Y;
            meanY += jpg.ShoulderLeft.Y;
            meanY += jpg.ShoulderRight.Y;
            meanY += jpg.ElbowLeft.Y;
            meanY += jpg.ElbowRight.Y;
            meanY += jpg.WristLeft.Y;
            meanY += jpg.WristRight.Y;

            meanY /= numOfJoints;


            varianceY += (meanY - (float)jpg.Head.Y) * (meanY - (float)jpg.Head.Y);
            varianceY += (meanY - (float)jpg.Spine.Y) * (meanY - (float)jpg.Spine.Y);
            varianceY += (meanY - (float)jpg.ShoulderCenter.Y) * (meanY - (float)jpg.ShoulderCenter.Y);
            varianceY += (meanY - (float)jpg.ShoulderLeft.Y) * (meanY - (float)jpg.ShoulderLeft.Y);
            varianceY += (meanY - (float)jpg.ShoulderRight.Y) * (meanY - (float)jpg.ShoulderRight.Y);
            varianceY += (meanY - (float)jpg.ElbowLeft.Y) * (meanY - (float)jpg.ElbowLeft.Y);
            varianceY += (meanY - (float)jpg.ElbowRight.Y) * (meanY - (float)jpg.ElbowRight.Y);
            varianceY += (meanY - (float)jpg.WristLeft.Y) * (meanY - (float)jpg.WristLeft.Y);
            varianceY += (meanY - (float)jpg.WristRight.Y) * (meanY - (float)jpg.WristRight.Y);

            varianceY /= numOfJoints;



            j.meanX     = meanX;
            j.meanY     = meanY;
            j.varianceX = varianceX;
            j.varianceY = varianceY;



            //jointInfoQ.Enqueue(j);
        }