参考链接:https://www.cnblogs.com/chauxiang/articles/3645018.html

c#画三角形、填充三角形

  1. private void Form1_Paint(object sender, PaintEventArgs e)
  2. {
  3.     Graphics g = e.Graphics;
  4.     g.SmoothingMode = SmoothingMode.HighQuality;
  5.     //绘制三角形
  6.     //DrawTriangle_1(g);
  7.     //DrawTriangle_2(g);
  8.     //DrawTriangle_3(g);
  9. //填充三角形
  10.     //FillTriangle_1(g);
  11.    //FillTriangle_2(g);
  12. FillTriangle_3(g);
  13. }
  14. /// <summary>
  15. /// 绘制三角形(法1)
  16. /// </summary>
  17. /// <param name="g"></param>
  18. private void DrawTriangle_1(Graphics g)
  19. {
  20.     Point point1 = new Point(50, 20);
  21.     Point point2 = new Point(75, 50);
  22.     Point point3 = new Point(100, 20);
  23.     Point[] pntArr = { point1, point2, point3 };
  24.     g.DrawPolygon(new Pen(Color.Red), pntArr);
  25. }
  26. /// <summary>
  27. /// 绘制三角形(法2)
  28. /// </summary>
  29. /// <param name="g"></param>
  30. private void DrawTriangle_2(Graphics g)
  31. {
  32.     Point point1 = new Point(50, 20);
  33.     Point point2 = new Point(75, 50);
  34.     Point point3 = new Point(100, 20);
  35.     Point point4 = new Point(50, 20);
  36.     Point[] pntArr = { point1, point2, point3, point4 };
  37.     GraphicsPath path = new GraphicsPath();
  38.     path.AddLines(pntArr);
  39.     g.DrawPath(new Pen(Color.Red), path);
  40. }
  41. /// <summary>
  42. /// 绘制三角形(法3)
  43. /// </summary>
  44. /// <param name="g"></param>
  45. private void DrawTriangle_3(Graphics g)
  46. {
  47.      Point point1 = new Point(50, 20);
  48.      Point point2 = new Point(75, 50);
  49.      Point point3 = new Point(100, 20);
  50.      Point point4 = new Point(50, 20);
  51.      Point[] pntArr = { point1, point2, point3,point4};
  52.      byte[] bytes = { (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line };
  53.      GraphicsPath path = new GraphicsPath(pntArr, bytes);
  54.      g.DrawPath(new Pen(Color.Red), path);
  55. }
  56. /// <summary>
  57. /// 填充三角形(法1)
  58. /// </summary>
  59. /// <param name="g"></param>
  60. private void FillTriangle_1(Graphics g)
  61. {
  62.     Point point1 = new Point(50, 20);
  63.     Point point2 = new Point(75, 50);
  64.     Point point3 = new Point(100, 20);
  65.     Point[] pntArr = { point1, point2, point3 };
  66.     g.FillPolygon(Brushes.Red, pntArr);
  67. }
  68. /// <summary>
  69. /// 填充三角形(法2)
  70. /// </summary>
  71. /// <param name="g"></param>
  72. private void FillTriangle_2(Graphics g)
  73. {
  74.      Point point1 = new Point(50, 20);
  75.      Point point2 = new Point(75, 50);
  76.      Point point3 = new Point(100, 20);
  77.      Point[] pntArr = { point1, point2, point3 };
  78.      GraphicsPath path = new GraphicsPath();
  79.      path.AddLines(pntArr);
  80.      g.FillPath(Brushes.Red, path);
  81. }
  82. /// <summary>
  83. /// 填充三角形(法3)
  84. /// </summary>
  85. /// <param name="g"></param>
  86. private void FillTriangle_3(Graphics g)
  87. {
  88.     Point point1 = new Point(50, 20);
  89.     Point point2 = new Point(75, 50);
  90.     Point point3 = new Point(100, 20);
  91.     Point[] pntArr = { point1, point2, point3 };
  92.     byte[] bytes = { (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line };
  93.     GraphicsPath path = new GraphicsPath(pntArr,bytes);
  94.     g.FillPath(Brushes.Red, path);
  95. }