2011-05-17 95 views
1

我想画一个正方形,菱形和十字形状的形状。正方形线条坚固,没问题。但是,菱形和十字形的线条看起来像虚线或虚线。我希望所有形状都有实线。在.NET中,绘图形状的形状线问题c#

任何想法?

下面是代码,和形状:

http://www.sendspace.com/file/n3wljs

private void CreateVariousShapes() 
{ 
    Bitmap bitmap = new Bitmap(17, 17); 
    Graphics graphics = Graphics.FromImage(bitmap); 
    Pen pen = new Pen(Color.Black); 
    pen.Width = 1; 
    pen.DashStyle = DashStyle.Solid; 
    Brush brush = new SolidBrush(Color.White); 

    //graphics.FillRectangle(brush, 0, 0, 16, 16); 

    //graphics.DrawRectangle(pen, 0, 0, 16, 16); 

    FillDiamond(brush, graphics); 
    DrawDiamond(pen, graphics); 

    DrawCross(pen, graphics); 

    //bitmap.Save(MapPath("SquareDiamondCross.png"),ImageFormat.Png); 
    //bitmap.Save(MapPath("SquareCross.png"), ImageFormat.Png); 
    //bitmap.Save(MapPath("SquareDiamond.png"), ImageFormat.Png); 
    bitmap.Save(MapPath("DiamondCross.png"), ImageFormat.Png); 
} 

private void FillDiamond(Brush brush, Graphics graphics) 
{ 
    Point[] points = new Point[] 
         { new Point(0,8), 
         new Point(8,16), 
         new Point(16,8), 
         new Point(8,0), 

         }; 

    graphics.FillPolygon(brush, points); 
} 

private void DrawDiamond(Pen pen, Graphics graphics) 
{ 
    Point[] points = new Point[] 
         { new Point(0,8), 
         new Point(8,16), 
         new Point(16,8), 
         new Point(8,0), 
         }; 
    graphics.DrawPolygon(pen, points); 
} 

private void DrawCross(Pen pen, Graphics graphics) 
{ 
    graphics.DrawLine(pen, 4, 2, 2, 4); 

    graphics.DrawLine(pen, 2, 12, 4, 14); 

    graphics.DrawLine(pen, 12, 14, 14, 12); 

    graphics.DrawLine(pen, 12, 2, 14, 4); 

    graphics.DrawLine(pen, 2, 4, 6, 8); 
    graphics.DrawLine(pen, 2, 12, 6, 8); 

    graphics.DrawLine(pen, 4, 14, 8, 10); 
    graphics.DrawLine(pen, 12, 14, 8, 10); 

    graphics.DrawLine(pen, 14, 12, 10, 8); 
    graphics.DrawLine(pen, 14, 4, 10, 8); 

    graphics.DrawLine(pen, 12, 2, 8, 6); 
    graphics.DrawLine(pen, 4, 2, 8, 6); 
} 
+0

看起来像一个反锯齿问题...(缺少那里) – 2011-05-17 01:15:37

回答

4

设置以下图形属性:

graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; 
graphics.SmoothingMode = SmoothingMode.HighQuality; 

希望你会得到你想要的。

+0

谢谢。有用! – Pingpong 2011-05-17 10:18:10