旋转矩形 - C#

时间:2016-11-24 16:27:18

标签: c# graphics rectangles

我想围绕它的中心旋转一个矩形。旋转工作完美,但我无法弄清楚如何围绕其中心旋转它。有人能帮我吗?谢谢! :) 这是我的代码:

    private void button1_Click(object sender, EventArgs e)
    {
        Paint += new PaintEventHandler(PaintRectangle);
        angle = 0;
        t = new Timer();
        t.Tick += new EventHandler(DrawRectangle);
        t.Interval = 1;
        t.Start();
    }

    private void DrawRectangle(object sender, EventArgs e)
    {
        angle++;
        Invalidate();
    }

    private void PaintRectangle(object sender, PaintEventArgs e)
    {
        Rectangle r = new Rectangle(0, 0, 100, 10);
        Graphics g = CreateGraphics();
        g.TranslateTransform(124, 150);
        g.RotateTransform(angle);
        g.DrawRectangle(Pens.White, r);
    }

1 个答案:

答案 0 :(得分:1)

翻译所有顶点,使矩形的中心位于(zero, zero)上。如果矩形的中心是(x,y),则需要将所有顶点平移(-x,-y)。然后旋转任意角度,然后将顶点向后翻译(x,y)