代码之家  ›  专栏  ›  技术社区  ›  serhio

画粗线时去掉角

  •  1
  • serhio  · 技术社区  · 15 年前

    结果:

    alt text http://lh4.ggpht.com/_1TPOP7DzY1E/TCyG2pVxi2I/AAAAAAAADSM/TTqZZxh5LR8/s800/Capture4.gif

    我能用“附录”这一行转转或做些什么吗?

    代码:

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Point[] points1 = new Point[] {
                new Point(50, 90),
                new Point(60, 20),
                new Point(70, 120)
            };
    
            GraphicsPath path1 = new GraphicsPath();
            path1.AddLines(points1);
    
            ControlPaint.DrawGrid(e.Graphics, this.ClientRectangle,
                new Size(10, 10), Color.Red);
    
            using (Pen p = Pens.DarkBlue.Clone() as Pen)
            {
                p.Width = 5;
                e.Graphics.DrawPath(p, path1);
                e.Graphics.DrawString("Width: " + p.Width, 
                    new Font(this.Font, FontStyle.Bold), 
                    Brushes.DarkBlue, new Point(35, 150));
    
                Matrix m = new Matrix();
                m.Translate(50, 0);
                e.Graphics.Transform = m;
    
                p.Width = 1;
                e.Graphics.DrawPath(p, path1);
                e.Graphics.DrawLine(Pens.Red, -40, 20, 150, 20);
                e.Graphics.DrawString("Width: " + p.Width, 
                    this.Font, Brushes.DarkBlue, new Point(35, 150));
            }
        }
    
    1 回复  |  直到 15 年前
        1
  •  4
  •   Daniel Brückner    15 年前

    只要改变 Pen.LineJoin LineJoin.Round . 你也可以降低 Pen.MiterLimit

    推荐文章