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