现在有一个数组a[3000,2]
前一列的数与后一列一一对应
一对数表示一个点
要求由这3000对数用C#画出图像问:用什么控件,调用什么函数?
谢谢

解决方案 »

  1.   

    Graphics用这很卡啊 每次都重绘一遍
      

  2.   

    方法太多啦!搜一下就有。
    可以参考:
    http://lixinsmiles.blog.163.com/blog/static/12103313520104103455674/
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/system.drawing.graphics.aspx
      

  4.   

                int[,] a=new int[4,2]{{200,300},{400,500},{600,700},{800,900}};
                Graphics gr = this.CreateGraphics();
                Point[] pos=new Point[a.Length];
                for(int i=0;i<a.GetLength(0);i++)
                {
                    for(int j=0;j<a.GetLength(1);j++)
                    {
                      pos[j]=new Point(a[i,j],a[i,0]);
                    }
                }
                
                gr.FillPolygon( new SolidBrush(Color.Blue), pos,System.Drawing.Drawing2D.FillMode.Alternate);这个事花填充的多边形,GDI+可以画很多东西,只是有的要仔细的按计划来,也可以画出很帅的图片,这里是个简单示例。
      

  5.   

                int[,] a = new int[5, 2] { { 120, 180 }, { 160, 150 }, { 360, 170 }, { 140, 390 }, { 390, 300 } };
                Graphics gr = this.CreateGraphics();
                Point[] pos = new Point[a.Length];
                for (int n = 0; n < a.GetLength(0); n++)
                {   
                    for (int k = 0; k < a.GetLength(1); k++)
                    {
                        pos[n] = new Point(a[n,0], a[n, k]);
                    }
                }
                gr.DrawLine(new Pen(new SolidBrush(Color.Black), 3), new Point(-1000, 300), new Point(1000,300));//x
                gr.DrawLine(new Pen(new SolidBrush(Color.Black), 3), new Point(100, -500), new Point(100, 500));//y
                gr.DrawLines(new Pen(new SolidBrush(Color.Blue), 1), pos);这样来,不过画图涉及的算法也有,要看具体应用!
      

  6.   

    坐标轴自己画,Graphics gr = this.CreateGraphics();   
    System.Drawing.Font myfont = new Font("Arial", 6);//字体
                Color b = Color.Black;      //颜色
                SolidBrush sb = new SolidBrush(b);  //画刷
    gr.DrawString(str,myfont,sb,x,y);   //在x,y处画刻度,自己画时用循环画即可
    //