随风而去

博客园 首页 新随笔 联系 订阅 管理
1. 创建一位图
    int bmWidth = 425// 图片的宽
    int bmHeight = 185// 图片的高
    Bitmap bm = new Bitmap(bmWidth,bmHeight);  //创建位图
    Graphics g = Graphics.FromImage(bm);
2.画矩形图
    int xPoint, yPoint; // 矩形左上角x,y坐标
    xPoint = 135;
    yPoint 
= 15;
    
int width = 250//矩形的宽
    int height = 125//矩形的高
    int xP = 30// x比例
    int yP = 15// y比例
    g.DrawRectangle(new Pen(Brushes.Silver, 1),xPoint,yPoint,width,height); // 矩形
可以根据矩形图的长,宽定义下一步要画的图形与此矩形的关系,这样开始画直线
    g.DrawLine(new Pen(Brushes.Silver, 1),xPoint,yPoint,xPoint-xP,yPoint+yP); // 左上直线 
    g.DrawLine(new Pen(Brushes.Silver, 1),xPoint,yPoint+height,xPoint-xP,yPoint+height+yP); // 左下直线
    g.DrawLine(new Pen(Brushes.Silver, 1),xPoint-xP,yPoint+yP,xPoint-xP,yPoint+height+yP); // 左面直线
    g.DrawLine(new Pen(Brushes.Silver, 1),xPoint-xP,yPoint+height+yP,xPoint-xP+width,yPoint+height+yP); // 前面直线
    g.DrawLine(new Pen(Brushes.Silver, 1),xPoint+width,yPoint+height,xPoint-xP+width,yPoint+height+yP); // 右面直线

//            Point[] points = new Point[]{new Point(xPoint,yPoint), new Point(xPoint,yPoint+120),new Point(xPoint-30,yPoint+135),
//                                        new Point(xPoint-30,yPoint+15)};
//            g.DrawPolygon(new Pen(Brushes.Silver, 1),points);
3.
大致框架已构建好了,现在开始画柱状图
    pY = barValues[i]/xValues[xValues.Length-1];
                width 
= int.Parse((265*pY).ToString("0")); // 柱形的长
                g.DrawRectangle(new Pen(Brushes.Black, 1),xPoint-30,yPoint+15+10+yHeight*i+ySpace*i,width,24);
                g.FillRectangle(brush[i],xPoint
-30,yPoint+15+10+yHeight*i+ySpace*i,width,24);
                points 
= new Point[]{new Point(xPoint-30+width,yPoint+15+10+yHeight*i+ySpace*i), //左上
                                        new Point(xPoint+width,yPoint+10+yHeight*i+ySpace*i), //右上
                                        new Point(xPoint+width,yPoint+10+24+yHeight*i+ySpace*i), //右下
                                        new Point(xPoint-30+width,yPoint+15+10+24+yHeight*i+ySpace*i) // 左下
                                    }
;
                g.DrawPolygon(
new Pen(Brushes.Black, 1),points);
                g.FillPolygon(brush[i],points);
                points2 
= new Point[]{new Point(xPoint-30,yPoint+15+10+yHeight*i+ySpace*i), //左上
                                            new Point(xPoint,yPoint+10+yHeight*i+ySpace*i), //右上
                                            new Point(xPoint+width,yPoint+10+yHeight*i+ySpace*i), //右下
                                            new Point(xPoint-30+width,yPoint+15+10+yHeight*i+ySpace*i) // 左下
                                        }
;
                g.DrawPolygon(
new Pen(Brushes.Black, 1),points2);
                g.FillPolygon(brush[i],points2);

现在已基本完成
源码
posted on 2007-09-24 21:37  Aaron_Zhang  阅读(872)  评论(2)    收藏  举报