110,502
社区成员
发帖
与我相关
我的任务
分享
private void Form1_Paint(object sender, PaintEventArgs e)
{
Rectangle rect = new Rectangle(90, 40, 200, 100);
Rectangle rect1 = new Rectangle(rect.X + rect.Width / 2, rect.Y + rect.Height / 2, 3, 3);
e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), rect);
e.Graphics.DrawRectangle(new Pen(Color.Blue, 1), rect);
e.Graphics.FillEllipse(Brushes.Blue, rect1);
e.Graphics.RotateTransform(30.0F);
e.Graphics.DrawEllipse(new Pen(Color.Red, 3), rect);
e.Graphics.DrawRectangle(new Pen(Color.Red, 1), rect);
e.Graphics.FillEllipse(Brushes.Red, rect1);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Rectangle rect = new Rectangle(90, 40, 200, 100);
Rectangle rect1 = new Rectangle(rect.X + rect.Width / 2, rect.Y + rect.Height / 2, 3, 3);
float offsetX = (float)Math.Cos(45) * (rect.X + rect.Width / 2);
float offsetY = -(float)Math.Sin(45) * (rect.Y + rect.Height / 2);
float r = (float)Math.Sqrt(rect.X * rect.X + rect.Y * rect.Y);
//e.Graphics.DrawEllipse(new Pen(Color.Black, 1), -r, -r, r * 2, r * 2);
e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), rect);
e.Graphics.DrawRectangle(new Pen(Color.Blue, 1), rect);
e.Graphics.FillEllipse(Brushes.Blue, rect1);
//Matrix myMatrix = new Matrix();
//myMatrix.Rotate(30);
//myMatrix.Scale(1, 2, MatrixOrder.Append);
//myMatrix.Translate(offsetX, offsetY, MatrixOrder.Append);
//e.Graphics.Transform = myMatrix;
e.Graphics.RotateTransform(30.0F);
e.Graphics.TranslateTransform(offsetX, offsetY,System.Drawing.Drawing2D.MatrixOrder.Append);
e.Graphics.DrawEllipse(new Pen(Color.Red, 3), rect);
e.Graphics.DrawRectangle(new Pen(Color.Red, 1), rect);
e.Graphics.FillEllipse(Brushes.Red, rect1);
}