Как повернуть линию в UWP? - PullRequest
0 голосов
/ 09 января 2019

В настоящее время мне нужно повернуть линию вокруг средней точки на основе общих углов. Я попытался использовать Rotate Transform, но он отлично работает для некоторого угла, но doest дает точный результат для некоторых других углов. Пожалуйста, предложите, если есть какое-либо решение для вращения.

cx= (line.X1+line.2)/2;
cy=(line.Y1+line.Y2)/2;   
RotateTransform transform = new RotateTransform();
transform.Angle = angle;
transform.CenterX = cx / zoomFactor;
transform.CenterY = cy / zoomFactor;
group.Children.Add(transform);
line.RenderTransform = group;                                                                                       

1 Ответ

0 голосов
/ 09 января 2019
  var cx = new Point( (line.X2 - line.X1)/2,  (line.Y2 - line.Y1) / 2);
  var rotate = new RotateTransform
  {
    Angle = angle
  };

  var translate = new TranslateTransform
  {
    X = (line.X1 + cx.X),
    Y = (line.Y1 + cx.Y)
  };
  var group = new TransformGroup
  {
    Children =
    {
      (Transform) translate.Inverse,
      rotate,
      translate
    }
  };

  line.RenderTransform = group;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...