Wpf RotateTransform CenterX CenterY小结

简介:                                                                                                                                               ...

 <Canvas>
        <!-- 原图 -->
        <Rectangle Stroke="Black" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50" />

     

        <!-- 绕矩形左上角点(0, 0)点旋转,注意是矩形坐标系 -->
        <Rectangle Stroke="Green" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="90" CenterX="50" CenterY="25" />
            </Rectangle.RenderTransform>
        </Rectangle>

        <!-- 绕矩形中心点(50, 25)点旋转,注意是矩形坐标系 -->
        <Rectangle Stroke="Green" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="90" CenterX="50" CenterY="25" />
            </Rectangle.RenderTransform>
        </Rectangle>

        <!-- 绕矩形中心点(50, 150)点旋转,注意是矩形坐标系,也是Canvas坐标系的中心点(300, 225) -->
        <Rectangle Stroke="BlueViolet" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50" RenderTransformOrigin="0,0">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="90" CenterX="50" CenterY="150" />
            </Rectangle.RenderTransform>
        </Rectangle>

        <Path Stroke="Black" StrokeThickness="4">
            <Path.Data>
                <LineGeometry StartPoint="250,50" EndPoint="300,200"></LineGeometry>
            </Path.Data>
        </Path>
        <Ellipse Width="5" Height="5" Fill="Red" Canvas.Left="300" Canvas.Top="200"></Ellipse>
        <!-- 绕矩形中心点(50, 150)点旋转,注意是矩形坐标系,也是Canvas坐标系的中心点(300, 225) -->
        <Rectangle Stroke="GreenYellow" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="180" CenterX="50" CenterY="150" />
            </Rectangle.RenderTransform>
        </Rectangle>

        <!-- 绕矩形中心点(50, 150)点旋转,注意是矩形坐标系,也是Canvas坐标系的中心点(300, 225) -->
        <Rectangle Stroke="SaddleBrown" Width="100" Height="50" Canvas.Left="250" Canvas.Top="50">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="270" CenterX="50" CenterY="150" />
            </Rectangle.RenderTransform>
        </Rectangle>
    </Canvas>

 

如图,如果Rectangle的RenderTransformOrigin="0,0" CenterX=50 CenteY=150就是围绕着红点为中心,黄线为半径将黄线另一头的点选择相应的角度,如果RenderTransformOrigin!="0,0"则则以红点和RenderTransformOrigin连起来的线为半径旋转相应的角度 (注意RenderTransformOrigin="0,0" CenterX=50 CenteY=150的点的位置都是相对于其所在的Rectangle 的)

 

 

<Rectangle Stroke="Black" Width="50" Height="50">
           
        </Rectangle>
        <Rectangle Stroke="Black" Width="50" Height="50">
            <Rectangle.RenderTransform>
                <TransformGroup>
                    <RotateTransform Angle="10" CenterX="50" CenterY="50"></RotateTransform>
                </TransformGroup>
            </Rectangle.RenderTransform>
        </Rectangle>
        <Rectangle x:Name="test" Stroke="Black" Width="50" Height="50">
            <Rectangle.RenderTransform>
                <TransformGroup>
                    <TranslateTransform X="50"></TranslateTransform>
                    <RotateTransform Angle="10" CenterX="50" CenterY="50"></RotateTransform>
                </TransformGroup>
            </Rectangle.RenderTransform>
        </Rectangle>

由这个例子中test矩形得知无论 

 <TranslateTransform X="50"></TranslateTransform>如何设置CenterX和CenterY都是以没改变前的图为标准的

其实不管CenterX Center如何设置,几何图形旋转的角度都一样的,只是旋转后的位置不同

相关文章
|
1月前
|
存储 C# 索引
WPF/C#:BusinessLayerValidation
WPF/C#:BusinessLayerValidation
28 0
|
C# 图形学 数据格式
WPF中的3D Wireframe
原文:WPF中的3D Wireframe WPF不支持画三维线,但开发人员提供了ScreenSpaceLines3D 类用于实现这个功能。
1307 0
|
数据建模 C#
WPF InkCanvas 毛笔效果
原文:WPF InkCanvas 毛笔效果 1、先来看看InkCanvas的一般用法:                                                                                 2、自定义InkCanvas,实现毛笔效果...
1237 0
|
C#
使用WPF实现3D场景[二]
原文:使用WPF实现3D场景[二] 在上一篇的文章里我们知道如何构造一个简单的三维场景,这次的课程我将和大家一起来研究如何用代码,完成对建立好了的三维场景的观察。
1120 0
|
C#
wpf简单的绘图板
原文:wpf简单的绘图板 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a771948524/article/details/9323121 ...
866 0
|
测试技术 C#
WPF DesiredSize & RenderSize
原文:WPF DesiredSize & RenderSize DesiredSize DesiredSize介绍 关于DesiredSize的介绍,可以查看最新微软文档对DesiredSize的介绍 DesiredSize,指的是元素在布局过程中计算所需要的大小。
1001 0
|
算法 C#
WPF 实现水纹效果
原文:WPF 实现水纹效果 鼠标滑过产生水纹,效果图如下:     XMAL就放置了一个img标签   后台主要代码 窗体加载: private void Window_Loaded(object s...
1532 0
|
C#
浅谈WPF的VisualBrush
原文:浅谈WPF的VisualBrush     首先看看VisualBrush的解释,msdn上面的解释是使用 Visual 绘制区域,那么我们再来看看什么是Visual呢?官方的解释是:获取或设置画笔的内容,Visual 是直接继承自DependencyObject,UIElement也是直接继...
2110 0
|
C# 索引
WPF MeshGeometry3D
原文:WPF MeshGeometry3D 说说 MeshGeometry3D 里 常用的 四个属性。 先看看 MSDN 的 简介 先说说 Positions,介绍说 是顶点位置的集合,什么意思,看张图片。
926 0