没有合适的资源?快使用搜索试试~ 我知道了~
lindexi#lindexi.github.io#WPF 如何计算矩形内一个坐标相对另一个矩形的坐标1
需积分: 0 0 下载量 53 浏览量
2022-07-25
14:34:00
上传
评论
收藏 6KB MD 举报
温馨提示
试读
也就是说我拿到一个点,这个点的左上角(0,0)坐标就是矩形1的左上角坐标,而我想要将这个点转换为以矩形2的左上角坐标作为原点的坐标系的坐标其实做法就是将矩形2的
资源推荐
资源详情
资源评论
# WPF 如何计算矩形内一个坐标相对另一个矩形的坐标
我在 WPF 中拿到一个矩形里面的一个坐标,在这个矩形里面包含了另一个矩形,我想将这个点转换到另一个矩形里面的坐标。也就是说我拿到一个点,这个点的左上角(0,0)坐标就是矩形1的左上角坐标,而我想要将这个点转换为以矩形2的左上角坐标作为原点的坐标系的坐标
其实做法就是将矩形2的左上角坐标换算为以矩形1作为原点的坐标,然后将这个点的坐标减去矩形2的左上角就可以计算出当前的点所在矩形2的坐标
定义方法 `private void TranslatePoint(Rect originRect, Rect rect, Point point)` 将点 point 从 originRect 的坐标转换为在矩形 rect 的坐标
如果此时的 originRect 的坐标系和 rect 的坐标系相同,那么有两个方法,第一个方法就是将 rect 转换为 originRect 的坐标系,然后再计算坐标系内的转换。第二个方法时将 point 转换坐标系,让 point 的坐标系和 rect 的坐标系相同
尝试方法一将 rect 转换为 originRect 的坐标系,需要拿到两个矩形之间的向量,也就是将 rect 的左上角减去 originRect 的左上角,将拿到的向量的点作为 rect 的左上角的值
```csharp
private void TranslatePoint(Rect originRect, Rect rect, Point point)
{
var vector = rect.TopLeft - originRect.TopLeft;
rect = new Rect(vector.X, vector.Y, rect.Width, rect.Height);
}
```
上面代码就将 rect 转换了坐标系,相当于将 rect 放入了 originRect 矩形
然后进行矩形内的坐标换算,也就是 rect 使用 originRect 的左上角作为原点的坐标系,此时的坐标系和 point 的坐标系相同,也就是计算在相同�
点击阅读更多
资源评论
阿汝娜老师
- 粉丝: 22
- 资源: 309
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功