using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Draw_V2._0 { public partial class Form1 : Form { float[,] m_aCoorCam; public Form1() { InitializeComponent(); } // I:1.Bitmap阵列的宽度;2.Bitmap阵列的长度 private Graphics Axis(int width,int height) { // Bitmap(int width,int height),Bitmap里面的参数只能为int类型 Bitmap objBitmap = new Bitmap(width, height); Graphics objGraphics = Graphics.FromImage(objBitmap); objGraphics.FillRectangle(new SolidBrush(Color.White), 0, 0, width, height);//以白色作为图像的总体背景颜色。 /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/ objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black), 2), 0, height/ 2, width, height/ 2); /* 三个点的位置关系图 (width - 10, height / 2 - 10) * -----------------------------------------------| * (width, height / 2) * (width - 10, height / 2 + 10) */ PointF[] xpt = new PointF[3] { new PointF(width - 10, height / 2 - 10), new PointF(width - 10, height / 2 + 10), new PointF(width, height / 2) };//x轴三角形 objGraphics.DrawPolygon(Pens.Black, xpt); objGraphics.FillPolygon(new SolidBrush(Color.Red), xpt); float y1 = height / 2; int iCount = 0; for (int iIndex = 0; iIndex <= width - 10; iIndex += 10) { iCount++; if (iCount != 5) { //每10个像素距离画1条小线 objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black)), iIndex + 10, y1 + 5, iIndex + 10, y1 - 5); } else { //每50个像素距离画1条大线 objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black)), iIndex + 10, y1 + 10, iIndex + 10, y1 - 10); objGraphics.DrawString(Convert.ToString((width/2-iIndex-10)*(-1)), new Font("verdana", 8), new SolidBrush(Color.Black), iIndex, height / 2+10); iCount = 0; } } /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/ /*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*/ objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black), 2), width/2, 0, width/2, height); PointF[] ypt = new PointF[3] { new PointF(width/2-10, 10), new PointF(width/2+10,10), new PointF(width/2, 0) };//x轴三角形 objGraphics.DrawPolygon(Pens.Black, ypt); objGraphics.FillPolygon(new SolidBrush(Color.Red), ypt); iCount = 0; float x1 = width / 2; for (int iIndex = 0; iIndex <= height - 10; iIndex += 10) { iCount++; if (iCount != 5) { //每10个像素距离画1条小线 objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black)), width / 2 - 5, iIndex + 10, width / 2 + 5, iIndex + 10); } else { //每50个像素距离画1条大线 objGraphics.DrawLine(new Pen(new SolidBrush(Color.Black)), width / 2 - 10, iIndex + 10, width / 2 + 10, iIndex + 10); objGraphics.DrawString(Convert.ToString(height/2-iIndex-10), new Font("verdana", 8), new SolidBrush(Color.Black), width / 2+10, iIndex+5); iCount = 0; } } /*YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY*/ pictureBox1.Image = objBitmap; return objGraphics; } //绘制坐标系 private void button1_Click(object sender, EventArgs e) { Axis(int.Parse(this.textBox1.Text), int.Parse(this.textBox2.Text)); } } } 原创作品,转载请说明出处,谢谢