CoderRJP
CoderRJP

Reputation: 29

How to calculate the rotated coordinates of a line in UWP

I have rotated a line based using Transform Group in UWP. Once after rotation I need to get the new bounds of line using the transform matrix value .Whether it is possible to get the current points of line using the matrix value? Can anyone help me out on this ?

RotateTransform rotate = new RotateTransform();
rotate.Angle = -angle;    
var translate = new TranslateTransform
{
X = offset,
Y = offset                                   
 };                                       
var group = new TransformGroup
{
 Children = { (Transform)translate.Inverse, rotate,translate }
};
line.RenderTransform = group;

var  matrix = ((line.RenderTransform as TransformGroup).Value);

Upvotes: 0

Views: 174

Answers (1)

Muzib
Muzib

Reputation: 2581

if you know and access the Parent of the Line, then I think you can do this:

var line_bound = line.TransformToVisual(parent).TransformBounds(new Rect(0, 0, Math.Abs(line.X2 - line.X1), Math.Abs(line.Y2 - line.Y1)));

Here the parent may be a Grid or a Canvas that you attach the line to.

Read more about TransformBounds(Rect) Method here.

Upvotes: 1

Related Questions