Skip to content

使用WPF的Canvas交互式绘制ROI的一个初步Demo

Notifications You must be signed in to change notification settings

zxgamekingdom/ImageViewerDemo

Repository files navigation

使用仿射变换实现Image Viewer控件原理

WPF控件的属性RenderTransformSystem.Windows.Media.Transform类型,该类的基本功能为实现二维平面的仿射变换(平移、旋转、缩放、倾斜的组合变换)。

System.Windows.Media.Transform的底层包含了一个System.Windows.Media.Matrix的结构体,该结构体表示的结构为3*3的仿射变换矩阵,并且该结构体还提供了一些方法,用于计算进行仿射变换后新的仿射变换矩阵。例如:平移public void Translate (double offsetX, double offsetY);、旋转public void Rotate (double angle);、倾斜public void Skew (double skewX, double skewY);、缩放public void Scale (double scaleX, double scaleY);

首先通过调用WPF控件的RenderTransformValue获取控件当前用于渲染的System.Windows.Media.Matrix,调用该System.Windows.Media.Matrix的各种仿射变换方法,然后构造一个新的System.Windows.Media.MatrixTransform类,并在System.Windows.Media.MatrixTransform类的构造函数中填入刚刚的System.Windows.Media.Matrix对象。并且将这个新构造的System.Windows.Media.MatrixTransform对象赋值给WPF控件的RenderTransform的属性。

通过调用控件的public System.Windows.Point TranslatePoint (System.Windows.Point point, System.Windows.UIElement relativeTo);方法得到本控件的某个坐标在其他控件的坐标是多少。

About

使用WPF的Canvas交互式绘制ROI的一个初步Demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages