从0.1开始学C#  
小女子要开始学习C#了,主要是网络编程和画图两方面。 以前只学过C,也没怎么编过程序, 故而这个标题。 学习过程中,把自己学习的东西总结一下。 希望偶尔路过的高人多多指教 谢谢!^_^

 1 定义画板

Graphics g = paintEvnt.Graphics;//绘制事件的 画板成员

Graphics g = this.CreateGraphics();//或者直接生成。this可以为Form1,pictureBox

Graphics g = Graphics.FromHwnd(hwnd);//从窗口句柄生成。其中:IntPtr hwnd = this.Handle;

 Graphics g = Graphics.FromHdc(hdc);// 由绘图板句柄生成。其中:IntPtr hdc = e.Graphics.GetHdc();//不知道这种方式适合用在什么地方。。

用这种句柄方式生成的g,必须在后面释放一下:e.Graphics.ReleaseHdc(hdc);g.Dispose();

Graphics g = Graphics.FromImage(imageFile); //由图形生成。其中:Image imageFile = Image.FromFile("test2.jpg");

 2 定义画笔
            Pen pen = new Pen(Color.Black, 3);//构造新画笔
            Brush brush = Brushes.Blue;//画刷
            Pen pen2 = new Pen(brush);//用画刷生成画笔
            Pen pen3 = new Pen(brush, 4);//增加一个画笔大小属性

            Pens.Black;//使用预定义的默认大小为1的画笔

3 画图用到的常用结构定义方法
            
            Font font = new Font("黑体",14);//写字时,需要定义字体DrawString

            PointF pointf = new PointF(100,20);//点,
            
            PointF[] pointsf = new PointF[] { new PointF(10, 20), new PointF(180, 148), new PointF(260, 128),
            new Point(370,318),new Point(200,268),new Point(170,498)};//系列点

            Rectangle rectangle = new Rectangle(220,120,150,100);//矩形
              RectangleF[] rectangles =
             {
                 new RectangleF( 0.0F,   0.0F, 100.0F, 200.0F),
                 new RectangleF(100.0F, 200.0F, 250.0F,  50.0F),
                 new RectangleF(300.0F,   0.0F,  50.0F, 100.0F)
             };//一系列矩形

 

            Icon icon  = new Icon("C:/test.ico");//图标
            Image image = Image.FromFile("C:/test.jpg", true);//图形

             GraphicsPath path = new GraphicsPath();//路径
            path.AddEllipse(100, 100, 200, 100);

 

4 基本图形绘制


            g.DrawArc(pen, rectangle, 30, 180);//圆弧,顺时针计算角度


            g.DrawRectangle(pen3, rectangle);//矩形
            g.DrawCurve(pen, pointsf);//曲线,多点连曲线

            g.DrawClosedCurve(Pens.Red, pointsf);//封闭曲线,头尾自动连接起来

            g.DrawEllipse(pen, rectangle);//内切椭圆

            g.DrawIcon(icon, rectangle);//图标,缩放到指定矩形大小
            g.DrawIconUnstretched(icon, rectangle);//不缩放,图标与矩形左上角对齐


            g.DrawImage(image, 100, 410, 60, 30);//显示图像,按指定位置x,y和大小w,h显示(缩放)
            g.DrawLine(pen, 10, 10, 20, 39);//两点画线,起点x,y,终点x,y
            g.DrawLines(pen3, pointsf);//多点连直线,连续线段,与多边形不同是它不封闭
           
           
            g.DrawPath(pen, path);//路径

            float startAngle = 0.0F;
            float sweepAngle = 145.0F;
            g.DrawPie(pen,rectangle, startAngle, sweepAngle);//跟指定矩形内切的二维饼图


            g.DrawPolygon(Pens.Pink, pointsf);//多边形
            g.DrawRectangles(Pens.YellowGreen, rectangles);//矩形

            g.DrawString("测试", font, Brushes.Blue, 100, 200);//文字
            g.FillClosedCurve(Brushes.Blue, pointsf, FillMode.Winding, 1);//填充曲线区域
     
            //Fill系列命令填充与上相同。

posted on 2009-05-15 16:02  阿朵  阅读(1592)  评论(0编辑  收藏  举报