
private void button4_Click(object sender, EventArgs e)
{
Graphics g = pictureBox1.CreateGraphics(); // 创建Graphics对象
g.PageUnit = GraphicsUnit.Pixel; // 以像素为单位
g.PageScale = 0.5f; // 像素与坐标单位的比例,即1个单位为0.5个像素。
g.TranslateTransform(0, 700); // y轴下移 700 ,方向 仍朝下
g.Clear(Color.White); // 画布清零
Pen GreenPen = new Pen(Color.Green, 5);
// 计算P1、P2、P3、P4的坐标
int x1 = (int)(300 - 200 * Math.Cos(30.0 * 3.14159 / 180.0));
int y1 = (int)(300 + 200 * Math.Sin(30.0 * 3.14159 / 180.0));
int x2 = (int)(300 - 120 * Math.Cos(30.0 * 3.14159 / 180.0));
int y2 = (int)(500 + 120 * Math.Sin(30.0 * 3.14159 / 180.0));
int x3 = (int)(300 + 120 * Math.Cos(30.0 * 3.14159 / 180.0));
int y3 = (int)(500 + 120 * Math.Sin(30.0 * 3.14159 / 180.0));
int x4 = (int)(300 + 200 * Math.Cos(30.0 * 3.14159 / 180.0));
int y4 = (int)(300 + 200 * Math.Sin(30.0 * 3.14159 / 180.0));
// 画直线P1P2和P3P4
g.DrawLine(GreenPen, x1, -1 * y1, x2, -1 * y2);
g.DrawLine(GreenPen, x3, -1 * y3, x4, -1 * y4);
// 画圆弧P2P3
int x0 = (int)(300 + 120 * Math.Cos(30 * 3.14159 / 180.0));
int y0 = -1 * (int)(500 + 120 * Math.Sin(30 * 3.14159 / 180.0));
for (int i = 31; i < 150; i++)
{
int x = (int)(300 + 120 * Math.Cos(i * 3.14159 / 180.0));
int y = -1 * (int)(500 + 120 * Math.Sin(i * 3.14159 / 180.0));
g.DrawLine(GreenPen, x0, y0, x, y);
x0 = x;
y0 = y;
}
// 画圆弧P4P1
x0 = (int)(300 + 200 * Math.Cos(150 * 3.14159 / 180.0));
y0 = -1 * (int)(300 + 200 * Math.Sin(150 * 3.14159 / 180.0));
for (int i = 151; i < 390; i++)
{
int x = (int)(300 + 200 * Math.Cos(i * 3.14159 / 180.0));
int y = -1 * (int)(300 + 200 * Math.Sin(i * 3.14159 / 180.0));
g.DrawLine(GreenPen, x0, y0, x, y);
x0 = x;
y0 = y;
}
}