WPF 图片中心旋转后如何缩放

E次奥 2017-12-27 12:01:53
WPF 图片中心旋转90度,然后怎么能让图片根据鼠标位置缩放,并保持缩小后能在窗体中心位置;
...全文
365 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2017-12-28
  • 打赏
  • 举报
回复
引用 2 楼 zhuo_wp 的回复:
引用
让图片根据鼠标位置缩放,并保持缩小后能在窗体中心位置;
这两个条件是矛盾的,如果根据鼠标位置缩放,那就不能保证缩小后图片还居中 如果想缩小后居中,那就是以窗口中心为不动点缩放而不是根据鼠标位置缩放。
是的,貌似任何的桌面图片查看器都是以本身的中心点来缩放,旋转的。
ourhouzi 2017-12-28
  • 打赏
  • 举报
回复
无论图片旋转状态和缩放状态 只要记录四个点P1(图片控件左上角对应在图片中的xy值 后面三个类似)P2P3P4。 然后根据P5鼠标对应图片上的xy值。 接下来的问题就是 以P5为中心点对矩形P1P2P3P4进行缩放 求得缩放后的矩形,然后把xy对应到图片上就可以了。
xuzuning 2017-12-27
  • 打赏
  • 举报
回复
旋转90度 原来的 Y 轴就是 现在的 X轴,只不过屏幕坐标系中原点在左上角,注意一下符号就可以了 如果是旋转画布,就什么都不必动
E次奥 2017-12-27
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
这要看你旋转了什么? 是旋转图片本身,还是旋转了参照系坐标 对于前者,由于只旋转了90度,所以xy交换就可以,否则需要相对复杂的计算 对于后者,由于图片相对参照系并没有发生变化,可以认为没有计算量
引用 2 楼 zhuo_wp 的回复:
引用
让图片根据鼠标位置缩放,并保持缩小后能在窗体中心位置;
这两个条件是矛盾的,如果根据鼠标位置缩放,那就不能保证缩小后图片还居中 如果想缩小后居中,那就是以窗口中心为不动点缩放而不是根据鼠标位置缩放。
是这样的,我做了个图片查看器,但是旋转90度以后;用鼠标滚轮缩放的时候,就不好控制坐标了; 刚想了半天,偷了个懒,缩放的时候先让图片旋转还原,再缩放,最后再让图片旋转到缩放之前的角度;
zhuowp 2017-12-27
  • 打赏
  • 举报
回复
引用
让图片根据鼠标位置缩放,并保持缩小后能在窗体中心位置;
这两个条件是矛盾的,如果根据鼠标位置缩放,那就不能保证缩小后图片还居中 如果想缩小后居中,那就是以窗口中心为不动点缩放而不是根据鼠标位置缩放。
xuzuning 2017-12-27
  • 打赏
  • 举报
回复
这要看你旋转了什么? 是旋转图片本身,还是旋转了参照系坐标 对于前者,由于只旋转了90度,所以xy交换就可以,否则需要相对复杂的计算 对于后者,由于图片相对参照系并没有发生变化,可以认为没有计算量

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧