Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用图形对象以特定角度旋转矩形?_C#_.net_Rotation_Transformation - Fatal编程技术网

C# 如何使用图形对象以特定角度旋转矩形?

C# 如何使用图形对象以特定角度旋转矩形?,c#,.net,rotation,transformation,C#,.net,Rotation,Transformation,我试过这个: g.RotateTransform(degrees); 但什么也没发生。我有一个图形对象和一个矩形对象,我用这种方法绘制: g.FillRectangle(new TextureBrush(Image.FromFile(@"D:\LOVE&LUA\Pictures\yellowWool.png")), rectangle); 我需要旋转矩形,然后再画一次 请用代码示例和简单解释回答 编辑:以下是我正在使用的实际代码: public void Draw(G

我试过这个:

g.RotateTransform(degrees);
但什么也没发生。我有一个图形对象和一个矩形对象,我用这种方法绘制:

g.FillRectangle(new TextureBrush(Image.FromFile(@"D:\LOVE&LUA\Pictures\yellowWool.png")), rectangle);
我需要旋转矩形,然后再画一次

请用代码示例和简单解释回答

编辑:以下是我正在使用的实际代码:

        public void Draw(Graphics g,PointF location,Color clearColor)
    {
        rectangle.Location = location;
        g.Clear(clearColor);
        g.RotateTransform(10);
        //g.FillRectangle(new SolidBrush(Color), rectangle);
        g.FillRectangle(new TextureBrush(Image.FromFile(@"D:\LOVE&LUA\Pictures\yellowWool.png")), rectangle);
    }
每一帧我调用这个函数,我使用表单的绘画事件的
e.Graphics
对象来绘制图形,我有一个
定时器
开关,它只调用
this.Refresh()

编辑2:
好的,我已经玩了一些变换,并且旋转变换旋转graphycs对象的整个cordinate系统,我只需要旋转矩形,而不改变cordinate系统。你可以尝试使用带有旋转的矩阵方法,使旋转围绕矩形居中:

using (Matrix m = new Matrix()) {
  m.RotateAt(10, new PointF(rectangle.Left + (rectangle.Width / 2),
                            rectangle.Top + (rectangle.Height / 2)));
  g.Transform = m;
  using (TextureBrush tb = new TextureBrush(Image.FromFile(@"D:\LOVE&LUA\Pictures\yellowWool.png"))
    g.FillRectangle(tb, rectangle);
  g.ResetTransform();
}

ResetTransform()
会将图形恢复到正常处理状态。

是否按此顺序调用这两行?你能展示整个代码片段(包括实际度数)吗?没有TranslateTransform,这很麻烦@汉斯帕桑-这是相当神秘的。。。要解释一下吗?@Erno-默认情况下它会绕左上角旋转。如果不使用TT移动坐标系,矩形会旋转到看不见的地方。@HansPassant-当它只有10度时不会,对吗?当我使用ResetTransform()时,旋转不会也重置回正常状态吗?@Bosak不适用于调用的一个FillRectangle。这段代码基本上是说,开始画旋转,画东西,然后停止画旋转。希望有帮助。