我有一个usercontrol,它包含一个矩形和矩形左右边缘的2个椭圆.在转换和旋转rendertransform发生后,我很想找出用户控件的坐标.
用户控件包含在画布中.
编辑:搜索互联网一段时间后,我能够找到我的问题的答案http://forums.silverlight.net/forums/p/136759/305241.aspx所以我想我会发布其他链接有这个问题的人.
我已经将Tomas Petricek的帖子标记为答案,因为它是最接近解决方案的人.
如果您想自己实现计算,则可以使用以下方法计算旋转后点的位置(按指定的度数):
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)
通常,您可以将转换表示为矩阵.要组合转换,您只需将矩阵相乘,这是一个非常可组合的解决方案.表示旋转的矩阵包含来自上述方法的sin和cos值.请参阅Wikipedia上的旋转矩阵(和转换矩阵).
| 归档时间: |
|
| 查看次数: |
9549 次 |
| 最近记录: |