旋转后获取坐标

Nas*_*mic 3 c# wpf

我有一个usercontrol,它包含一个矩形和矩形左右边缘的2个椭圆.在转换和旋转rendertransform发生后,我很想找出用户控件的坐标.

用户控件包含在画布中.

编辑:搜索互联网一段时间后,我能够找到我的问题的答案http://forums.silverlight.net/forums/p/136759/305241.aspx所以我想我会发布其他链接有这个问题的人.

我已经将Tomas Petricek的帖子标记为答案,因为它是最接近解决方案的人.

Tom*_*cek 7

如果您想自己实现计算,则可以使用以下方法计算旋转后点的位置(按指定的度数):

public Point RotatePoint(float angle, Point pt) { 
   var a = angle * System.Math.PI / 180.0;
   float cosa = Math.Cos(a), sina = Math.Sin(a);
   return new Point(pt.X * cosa - pt.Y * sina, pt.X * sina + pt.Y * cosa);
}
Run Code Online (Sandbox Code Playgroud)

通常,您可以将转换表示为矩阵.要组合转换,您只需将矩阵相乘,这是一个非常可组合的解决方案.表示旋转的矩阵包含来自上述方法的sincos值.请参阅Wikipedia上的旋转矩阵(和转换矩阵).