2016-11-24 146 views
-1

我想使矩形圍繞其中心旋轉。旋轉完美,但我不知道如何旋轉它的中心。有人能幫我嗎?謝謝! :) 這裏是我的代碼:旋轉矩形 - 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

回答

1

翻譯所有頂點,使矩形的中心將是對(zero, zero)。如果矩形的中心是(x,y),則需要將所有頂點翻譯爲(-x,-y)。然後旋轉任意角度,然後將頂點轉回(x,y)