C#绘图(可以处理负值)[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

   private  void createCanvas(out Bitmap bm, out Graphics g, out PointF[] zuoBiaoEnd, out PointF[] zuoBiaoStart,ChartUtil cu)
   {
    //建立一个Graphics对象实例
    bm = new Bitmap(Pic_Width,Pic_Height);
    g = Graphics.FromImage(bm);
    //设置条图图形和文字属性

    g.ScaleTransform((Convert.ToSingle(Pic_Width))/SIDE_WIDTH,(Convert.ToSingle(Pic_Height))/SIDE_HEIGHT);
    g.SmoothingMode = SmoothingMode.Default;
    g.TextRenderingHint = TextRenderingHint.AntiAlias;
 
    //设定画布和边
    g.Clear(Color.White);
    g.DrawRectangle(Pens.Black,0,0,SIDE_WIDTH-1,SIDE_HEIGHT-1);
 
    //设置条形图的边
    g.DrawRectangle(new Pen(Color.Black,1),CHART_LEFT,CHART_TOP,CHART_WIDTH, CHART_HEIGHT);
    if(hasNeg)
    {
     g.DrawRectangle(new Pen(Color.Black,1),CHART_LEFT,CHART_TOP+CHART_HEIGHT,CHART_WIDTH, CHART_HEIGHT);
    }

    zuoBiaoEnd = null;
   zuoBiaoStart = cu.getZuoBiaoPoint(new PointF(CHART_TOP,CHART_LEFT),CHART_HEIGHT,CHART_WIDTH,out zuoBiaoEnd,hasNeg);
   }

   private  void drawInstruction(int CHART_LEFT, int CHART_HEIGHT, int CHART_TOP, Graphics g, string[] word, int[] data)
   {
    PointF colsNamePoint = new PointF(CHART_LEFT + 55,CHART_HEIGHT + CHART_TOP + 2);
    if(hasNeg)
    {
     colsNamePoint = new PointF(CHART_LEFT + 55,CHART_HEIGHT*2 + CHART_TOP + 2);
    }
    
    PointF boxOrigin = new PointF(Pic_Width*5/6-30,CHART_TOP*1/3);
    PointF textOrigin = new PointF(Pic_Width*4/5+8,CHART_TOP*1/3 -3 );
    for(int i=0;i<2;i++)
    {
     g.FillRectangle(new SolidBrush(ChartUtil.GetChartItemColor(i)),boxOrigin.X,boxOrigin.Y,20,10);
     //g.DrawRectangle(Pens.Black,boxOrigin.X,boxOrigin.Y,20,10);
     g.DrawString(word[i],new Font(FontWord,FontSize),Brushes.DarkBlue,colsNamePoint);
     g.DrawString(data[i].ToString(),new Font(FontWord,FontSize),Brushes.Black,textOrigin);
     colsNamePoint.X += 150;
     boxOrigin.Y += 15;
     textOrigin.Y += 15;
    }
   }
  }
  public class ChartUtil
  {
   
   public  readonly string PicPath = System.AppDomain.CurrentDomain.BaseDirectory + "Temp/";

   public  PointF[] getZuoBiaoPoint(PointF orign,int height,int width,out PointF[] endPoint,bool hasNeg)
   {
    int num = 6;
    if(hasNeg) num = 11;
    PointF[] startPoint = new PointF[num];
    endPoint = new PointF[num];

本文关键:C#绘图(可以处理负值)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top