旋转矩形 - C#

问题描述:

我想使矩形围绕其中心旋转。旋转完美,但我不知道如何旋转它的中心。有人能帮我吗?谢谢! :) 这里是我的代码:旋转矩形 - C#

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); 
    } 
+0

为什么要在按钮单击事件中重复指定paint事件处理程序? –

+0

因为我想在按下按钮时旋转它。 – DannyDSB

+3

'Graphics g = CreateGraphics();'哎!你应该使用e.Graphics对象。这里ansd __always__ !!在roation设置翻译__相同的金额___后,然后画!金额应该是矩形大小的一半! – TaW

翻译所有顶点,使矩形的中心将是对(zero, zero)。如果矩形的中心是(x,y),则需要将所有顶点翻译为(-x,-y)。然后旋转任意角度,然后将顶点转回(x,y)