旋转矩形 - C#
Rotate Rectangle - 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);
}
平移所有顶点,使矩形的中心位于 (zero, zero)
上。如果矩形的中心是(x,y),则需要将所有顶点平移(-x,-y)
。然后旋转任意角度,然后将顶点平移 (x,y)
.
我想让一个矩形围绕它的中心旋转。旋转效果很好,但我不知道如何绕其中心旋转。有人能帮我吗?谢谢! :) 这是我的代码:
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);
}
平移所有顶点,使矩形的中心位于 (zero, zero)
上。如果矩形的中心是(x,y),则需要将所有顶点平移(-x,-y)
。然后旋转任意角度,然后将顶点平移 (x,y)
.