title: Joint tracking image on Skeletal Tracking not following correctly
body: <p>When I run the Channel9 MSDN Kinect quickstart series code for skeletal tracking, there are suppose to be images/ellipses that overlap the location of the joints selected. Instead I get images/ellipses that are slightly off and not exactly over the location of the joints. No matter where I move the joints, the images stay off to the side of the exact location of the joint. I have seen the video here (http://channel9.msdn.com/Series/KinectQuickstart/Skeletal-Tracking-Fundamentals) and theirs works. Is there something I did wrong that I am not noticing that I changed or forgot to update?</p>
  
  <p>Update:
  This is some line of code that might be causing it:</p>
  
  <pre><code>            CoordinateMapper cm = new CoordinateMapper(kinectSensorChooser1.Kinect);
              //Map a joint location to a point on the depth map
              //head
              DepthImagePoint headDepthPoint =
                  cm.MapSkeletonPointToDepthPoint(first.Joints[JointType.Head].Position, depth.Format);
  </code></pre>
  
  <p>This is a change over what is in the video as they updated with a new method to map skeleton to depth and depth to color point. It eliminates an error that occurred when the stream was terminated.
  The method has parameters that ask for position and format. Could it be that the depth.Format is not the same format as the RGB640x480Resolution?</p>
  
  <pre><code>            //Map a depth point to a point on the color image
              //head
              ColorImagePoint headColorPoint =
                  cm.MapDepthPointToColorPoint(depth.Format, headDepthPoint,
                  ColorImageFormat.RgbResolution640x480Fps30);
  </code></pre>
  
  <p>On the main window screen this is what I have for creating the images i am using:</p>
  
  <pre><code>&lt;Canvas Name="MainCanvas"&gt;
      &lt;my:KinectColorViewer Canvas.Left="50" Canvas.Top="50" Height="480" Name="kinectColorViewer1" Width="640" 
                            Kinect="{Binding ElementName=kinectSensorChooser1, Path=Kinect}" /&gt;
      &lt;Ellipse Canvas.Left="0" Canvas.Top="0" Height="50" Name="leftEllipse" Width="50" Fill="#FF4D298D" Opacity="1" Stroke="White"&gt;&lt;/Ellipse&gt;
      &lt;Ellipse Canvas.Left="100" Canvas.Top="0" Height="50" Name="rightEllipse" Stroke="White" Width="50" Fill="#FF2CACE3" Opacity="1" /&gt;
      &lt;my:KinectSensorChooser Canvas.Left="250" Canvas.Top="380" Name="kinectSensorChooser1" Width="328" /&gt;
      &lt;Ellipse Canvas.Left="225" Canvas.Top="84" Height="50" Name="headImage" Stroke="White" Width="50" Fill="#FF2CACE3" Opacity="1" /&gt;
      &lt;my:KinectSkeletonViewer Canvas.Left="646" Canvas.Top="240" Name="kinectSkeletonViewer1" Width="640" Height="480" Kinect="{Binding ElementName=kinectSensorChooser1, Path=Kinect}" /&gt;
  
  &lt;/Canvas&gt;
  </code></pre>
  
  <p>And I have commented these lines of code about scaling position</p>
  
  <pre><code>        //ScalePosition(headImage, first.Joints[JointType.Head]);
         // ScalePosition(leftEllipse, first.Joints[JointType.HandLeft]);
          //ScalePosition(rightEllipse, first.Joints[JointType.HandRight]);
  </code></pre>
  
  <p>and this function has been commented.</p>
  
  <pre><code>    private void ScalePosition(FrameworkElement element, Joint joint)
      {
          //convert the value to X/Y
          //Joint scaledJoint = joint.ScaleTo(1280, 720); 
  
          //convert &amp; scale (.3 = means 1/3 of joint distance)
         // Joint scaledJoint = joint.ScaleTo(1280, 720, .3f, .3f);
  
      //    Canvas.SetLeft(element, scaledJoint.Position.X);
        //  Canvas.SetTop(element, scaledJoint.Position.Y);
  
      }
  </code></pre>
  
  <p>and this is commented out so no transform parameters are used:
              //sensor.SkeletonStream.Enable(parameters);</p>
  
  <p>and this is what stream and skeleton enable lines of code look like:</p>
  
  <pre><code>        sensor.SkeletonStream.Enable();
  
          sensor.AllFramesReady += new EventHandler&lt;AllFramesReadyEventArgs&gt;(sensor_AllFramesReady);
          sensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);
          sensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
  </code></pre>