110,538
社区成员
发帖
与我相关
我的任务
分享
public ArrayList arrData = new ArrayList();
public ArrayList arrMonth = new ArrayList();
private void QuXianTu_Load(object sender, EventArgs e)
{
arrMonth.Add(1);
arrMonth.Add(2);
arrMonth.Add(3);
arrMonth.Add(4);
arrMonth.Add(5);
arrMonth.Add(6);
arrData.Add(800);
arrData.Add(1000);
arrData.Add(850);
arrData.Add(900);
arrData.Add(750);
arrData.Add(1500);
}
private void button1_Click(object sender, EventArgs e)
{
int iCanvasWidth = 1024;
int iCanvasHeight = 768;
Bitmap bitmap = new Bitmap(iCanvasWidth, iCanvasHeight, PixelFormat.Format24bppRgb);
Graphics graph = Graphics.FromImage(bitmap);
graph.Clear(Color.White);
Font font = new Font("MS UI Gothic", 12);
SolidBrush brush = new SolidBrush(Color.Black);
Pen pen = new Pen(Color.Black);
pen.EndCap = LineCap.ArrowAnchor;
pen.DashStyle = DashStyle.Solid;
#region 座標軸描画
graph.DrawLine(pen, 200, 600, 650, 600);
graph.DrawLine(pen, 200, 600, 200, 150);
//X軸
graph.DrawLine(Pens.Black, 200 + 90 * 1, 600, 200 + 90 * 1, 600 - 5);
graph.DrawLine(Pens.Black, 200 + 90 * 2, 600, 200 + 90 * 2, 600 - 5);
graph.DrawLine(Pens.Black, 200 + 90 * 3, 600, 200 + 90 * 3, 600 - 5);
graph.DrawLine(Pens.Black, 200 + 90 * 4, 600, 200 + 90 * 4, 600 - 5);
graph.DrawLine(Pens.Black, 245 + 90 * 0, 600, 245 + 90 * 0, 600 - 2);
graph.DrawLine(Pens.Black, 245 + 90 * 1, 600, 245 + 90 * 1, 600 - 2);
graph.DrawLine(Pens.Black, 245 + 90 * 2, 600, 245 + 90 * 2, 600 - 2);
graph.DrawLine(Pens.Black, 245 + 90 * 3, 600, 245 + 90 * 3, 600 - 2);
graph.DrawLine(Pens.Black, 245 + 90 * 4, 600, 245 + 90 * 4, 600 - 2);
//Y軸
graph.DrawLine(Pens.Black, 200, 150 + 90 * 1, 200 + 5, 150 + 90 * 1);
graph.DrawLine(Pens.Black, 200, 150 + 90 * 2, 200 + 5, 150 + 90 * 2);
graph.DrawLine(Pens.Black, 200, 150 + 90 * 3, 200 + 5, 150 + 90 * 3);
graph.DrawLine(Pens.Black, 200, 150 + 90 * 4, 200 + 5, 150 + 90 * 4);
graph.DrawLine(Pens.Black, 200, 195 + 90 * 0, 200 + 2, 195 + 90 * 0);
graph.DrawLine(Pens.Black, 200, 195 + 90 * 1, 200 + 2, 195 + 90 * 1);
graph.DrawLine(Pens.Black, 200, 195 + 90 * 2, 200 + 2, 195 + 90 * 2);
graph.DrawLine(Pens.Black, 200, 195 + 90 * 3, 200 + 2, 195 + 90 * 3);
graph.DrawLine(Pens.Black, 200, 195 + 90 * 4, 200 + 2, 195 + 90 * 4);
#endregion
#region 目盛文字,見出し部,マーク文字 描画
double dblY1 = 600;
double dblX1 = 200;
for (int i = 0; i < arrData.Count; i++)
{
double dblData = Convert.ToDouble(arrData[i]);
double dblY2 = 600 - dblData / 2000 * 450;
double dblX2 = Convert.ToDouble(arrMonth[i]) / 10 * 450 + 200;
graph.DrawLine(Pens.Black, float.Parse(dblX1.ToString()), float.Parse(dblY1.ToString()), float.Parse(dblX2.ToString()), float.Parse(dblY2.ToString()));
dblY1 = dblY2;
dblX1 = dblX2;
}
for (int i = 0; i < 10; i++)
{
int intX = 450 / 10 * i + 200;
int intY = 600 - 450 / 10 * i;
Point ptx = new Point(intX, 620);
Point pty = new Point(150, intY);
graph.DrawString(Convert.ToString(i * 200), font, brush, pty);
graph.DrawString(i.ToString() + "月", font, brush, ptx);
}
#endregion
string strFilePath = @"E:\jackey_gif.gif";
bitmap.Save(strFilePath, ImageFormat.Gif);
font.Dispose();
brush.Dispose();
graph.Dispose();
bitmap.Dispose();