2012-06-21 5 views
3

Я пытаюсь создать приложение, которое масштабируется и выводится из изображения и поворачивает его через Kinect. Пока это работает, но для обоих случаев. Я бы хотел, чтобы, если я повернул изображение, это новое значение сохраняется, когда я увеличиваю масштаб, поэтому я увеличиваю изображение, которое было повернуто на X градусов. Теперь у меня есть это, если я сначала повернусь, а затем попытаюсь увеличить масштаб, изображение вернется на начальную стадию.Обработка изображений с помощью Kinect

 private void TrackDistances(Skeleton skeleton) 
     { 
     if (skeleton.TrackingState == SkeletonTrackingState.Tracked) 
     { 
      ... 
      if (wristLeft.Y > shoulderLeft.Y && wristRight.Y > shoulderRight.Y) 
      { 
       float distance = Math.Abs(wristLeft.X - wristRight.X); 
       image_Zoom(distance); 
      } 

      if (wristLeft.Y < shoulderLeft.Y && wristRight.Y < shoulderRight.Y) 
      { 
       angleDeg = GetJointAngle(zeroPoint, anglePoint); 
       image_Rotate(angleDeg); 
      } 
     } 
    } 
    private void image_Zoom(float distance) 
    { 
     //TransformGroup transformGroup = (TransformGroup)image.RenderTransform; 
     //ScaleTransform scale = (ScaleTransform)transformGroup.Children[0]; 
     //double zoom = distance * 1.5; 
     //scale.ScaleX = zoom; 
     //scale.ScaleY = zoom; 

     double zoom = distance * 1.5; 
     double ScaleX = zoom; 
     double ScaleY = zoom; 
     ScaleTransform scale = new ScaleTransform(ScaleX, ScaleY); 
     image.RenderTransform = scale; 
    } 

    private void image_Rotate(double angleDeg) 
    { 
     var angle = angleDeg - 180; 
     RotateTransform rotate = new RotateTransform(angle); 
     image.RenderTransform = rotate; 
    } 

Любые предложения?

Спасибо!

ответ

0

Я думаю, это потому, что вы меняете RenderTransform как ScaleTranform или RotateTransform. Вы можете установить ScaleTransform и RotateTransform изображения в XAML и просто изменить параметр угла или масштабирования в коде позади.

также см. Здесь: How can I do both zoom and rotate on an inkcanvas?