• 绘图


      1      // 新建窗体 (.cs)
      2         // 重写OnPaint事件
      3 
      4         //1、清除绘画面
      5         //protected override void OnPaint(PaintEventArgs e)
      6         //{
      7         //    Graphics g = e.Graphics;//绘制图形的对象
      8         //    g.Clear(Color.White);
      9         //    g.Dispose();
     10         //}
     11 
     12         //2、绘制线条
     13         //protected override void OnPaint(PaintEventArgs e)
     14         //{
     15         //    Graphics g = e.Graphics;//绘制图形的对象
     16         //    //画一条直线
     17         //    Pen pen = new Pen(Color.Red);//钢笔绘制对象
     18         //    Point p1 = new Point(50, 50);
     19         //    Point p2 = new Point(150, 50);
     20         //    g.DrawLine(pen, p1, p2);
     21         //    //画宫格
     22         //    int y = 100;
     23         //    for (int i = 0; i < 5; i++)
     24         //    {
     25         //        g.DrawLine(new Pen(Color.Black), new Point(100, y), new Point(200, y));
     26         //        y += 20;
     27         //    }
     28         //    int x = 100;
     29         //    for (int i = 0; i < 5; i++)
     30         //    {
     31         //        g.DrawLine(new Pen(Color.Black), new Point(x, 100), new Point(x, 100 + 80));
     32         //        x += 25;
     33         //    }
     34         //    g.Dispose();
     35         //}
     36 
     37         //3、绘制图形
     38         //protected override void OnPaint(PaintEventArgs e)
     39         //{
     40         //    Graphics g = e.Graphics;//绘制图形的对象
     41         //    //画矩形
     42         //    Rectangle rect = new Rectangle(200, 10, 100, 50);
     43         //    g.DrawRectangle(new Pen(Color.Black), rect);
     44         //    //画椭圆
     45         //    g.DrawEllipse(new Pen(Brushes.Black), new Rectangle(50, 50, 100, 50));
     46         //    //画圆
     47         //    g.DrawEllipse(new Pen(Brushes.Black), new Rectangle(200, 200, 100, 100));
     48         //    //画扇形
     49         //    g.DrawPie(new Pen(Brushes.Black), new Rectangle(10, 200, 100, 100), 0, 45);
     50         //    //画多边形
     51         //    Point[] points = new Point[] {
     52         //                        new Point(300,150),
     53         //                        new Point(400,150),
     54         //                        new Point(450,200),
     55         //                        new Point(250,200)
     56         //                     };
     57         //    g.DrawPolygon(new Pen(Color.Black), points);
     58         //    g.Dispose();
     59         //}
     60 
     61         //4、填充图形
     62         //protected override void OnPaint(PaintEventArgs e)
     63         //{
     64         //    Graphics g = e.Graphics;//绘制图形的对象
     65         //    //简单填充
     66         //    g.FillRectangle(Brushes.Yellow, new Rectangle(100, 100, 50, 20));
     67         //    //渐变填充
     68         //    Brush brush = new LinearGradientBrush(new Point(10, 10), new Point(60, 30), Color.Blue, Color.White);
     69         //    g.FillRectangle(brush, new Rectangle(10, 10, 50, 20));
     70         //    g.Dispose();
     71         //}
     72 
     73         //5、绘制路径
     74         //protected override void OnPaint(PaintEventArgs e)
     75         //{
     76         //    Graphics g = e.Graphics;//绘制图形的对象
     77         //    Point[] points = new Point[] {
     78         //                        new Point(300,150),
     79         //                        new Point(400,150),
     80         //                        new Point(450,200),
     81         //                        new Point(250,200)
     82         //                     };
     83         //    GraphicsPath path = new GraphicsPath(
     84         //                points, new byte[]{
     85         //                    (byte)PathPointType.Start,
     86         //                    (byte)PathPointType.Line,
     87         //                    (byte)PathPointType.Line,
     88         //                    (byte)PathPointType.Line
     89         //            });
     90         //    g.DrawPath(new Pen(Color.Black), path);
     91         //    g.Dispose();
     92         //}
     93 
     94         //6、绘制字符串
     95         protected override void OnPaint(PaintEventArgs e)
     96         {
     97             Graphics g = e.Graphics;//绘制图形的对象
     98             //普通绘制字符串
     99             Font font1 = new System.Drawing.Font("楷体_gb2312", 30);
    100             g.DrawString("abc", font1, Brushes.Red, 100, 100);
    101             //带格式绘制字符串
    102             Font font2 = new System.Drawing.Font("宋体", 30);
    103             RectangleF rect = new RectangleF(200, 200, 100, 50);
    104             g.DrawRectangle(new Pen(Color.Black), new Rectangle(200, 200, 100, 50));
    105             StringFormat sf = new StringFormat();//字符串格式对象
    106             sf.LineAlignment = StringAlignment.Center;//设置垂直方向居中
    107             sf.Alignment = StringAlignment.Center;//设置水平方向居中
    108             g.DrawString("abc", font2, Brushes.Red, rect, sf);
    109             g.Dispose();
    110         }
    111 
    112         //7、绘制图片
    113         //protected override void OnPaint(PaintEventArgs e)
    114         //{
    115         //    Graphics g = e.Graphics;//绘制图形的对象
    116         //    //普通绘制
    117         //    Image image = Image.FromFile("images/mouse.png");//获取图片对象
    118         //    g.DrawImage(image, new Point(50, 50));
    119         //    g.Dispose();
    120         //}
    121 
    122         //8、纹理画笔绘制图片
    123         //protected override void OnPaint(PaintEventArgs e)
    124         //{
    125         //    Graphics g = e.Graphics;//绘制图形的对象
    126         //    Image image = Image.FromFile("images/mouse.png");//获取图片对象
    127         //    Brush brush = new TextureBrush(image);//纹理画笔
    128         //    g.DrawEllipse(new Pen(Color.Black), new Rectangle(10, 10, 500, 500));
    129         //    g.FillEllipse(brush, new Rectangle(10, 10, 500, 500));
    130         //    g.Dispose();
    131         //}
    132 
    133         //9、缓冲画图(先把文本绘制到图像上,完成了所有的绘图操作后,把整个图像绘制到窗口)
    134         //protected override void OnPaint(PaintEventArgs e)
    135         //{
    136         //    Image image = new Bitmap(300, 300);//创建画布对象
    137         //    //将5根线条绘制在image上
    138         //    Graphics g = Graphics.FromImage(image);//获取image的绘制对象
    139         //    int x = 10;
    140         //    for (int i = 0; i < 5; i++)
    141         //    {
    142         //        g.DrawLine(new Pen(Color.Black), new Point(10, 10), new Point(x, 100));
    143         //        x += 20;
    144         //    }
    145         //    //将image绘制到窗体中
    146         //    e.Graphics.DrawImage(image, new Point(100, 100));
    147         //}
  • 相关阅读:
    JAVA实现AES的加密和解密算法
    工厂方法模式(Factory Method)
    Java开发23种设计模式
    读取Maven项目下resources目录下的配置文件(properties为例)
    迭代解析JSON简单实例
    Tomcat8.0配置JNDI多数据源
    SpringMVC DispatcherServlet-------视图渲染过程
    【C/C++】求解线性方程组的雅克比迭代与高斯赛德尔迭代
    【C/C++】实现牛顿迭代
    【C/C++】查找(一):静态查找表
  • 原文地址:https://www.cnblogs.com/xjx8205/p/4694892.html
Copyright © 2020-2023  润新知