C#绘制中国国旗的方法
内容摘要
本文实例讲述了C#绘制中国国旗的方法。分享给大家供大家参考。具体如下:
程序运行截图:
中国国旗被定义在《GB:12982-2004》中,以下是从维基百科条目中华人民共和国国旗中截的
程序运行截图:
中国国旗被定义在《GB:12982-2004》中,以下是从维基百科条目中华人民共和国国旗中截的
文章正文
本文实例讲述了C#绘制中国国旗的方法。分享给大家供大家参考。具体如下:
程序运行截图:
中国国旗被定义在《GB:12982-2004》中,以下是从维基百科条目中华人民共和国国旗中截的一张图,标出了五颗星大致的位置。
建立一个空的C# Windows窗体应用程序,窗体取名FormMain,在窗体中放一个PictureBox,取名为picFlagOfChina,并将Dock属性设置为Fill。程序代码中用到了窗体事件Load和Resize,程序代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ChineseFlag { public partial class FormMain : Form { public FormMain() { InitializeComponent(); } private void FormMain_Load(object sender, EventArgs e) { PaintFlag(); } //修改窗体大小时发生 private void FormMain_Resize(object sender, EventArgs e) { PaintFlag(); } /// <summary> /// 在图片框 picFlagOfChina 中绘制国旗 /// </summary> private void PaintFlag() { picFlagOfChina.BackColor = Color.Red; picFlagOfChina.Image = new Bitmap( picFlagOfChina.Width, picFlagOfChina.Height); Graphics g = Graphics.FromImage(picFlagOfChina.Image); Point[] p = new Point[] { }; p = PentacleA(this.Width, this.Height); g.FillPolygon(Brushes.Yellow, p); p = PentacleB(this.Width, this.Height); g.FillPolygon(Brushes.Yellow, p); p = PentacleC(this.Width, this.Height); g.FillPolygon(Brushes.Yellow, p); p = PentacleD(this.Width, this.Height); g.FillPolygon(Brushes.Yellow, p); p = PentacleE(this.Width, this.Height); g.FillPolygon(Brushes.Yellow, p); } //大星 private Point[] PentacleA(int width, int height) { return new Point[] { new Point((int)(width / 30.0 * 5), (int)(height / 20.0 * 2)), new Point((int)(width / 30.0 * 5.7), (int)(height / 20.0 * 4.1)), new Point((int)(width / 30.0 * 8), (int)(height / 20.0 * 4.1)), new Point((int)(width / 30.0 * 6), (int)(height / 20.0 * 5.3)), new Point((int)(width / 30.0 * 6.8), (int)(height / 20.0 * 7.3)), new Point((int)(width / 30.0 * 5), (int)(height / 20.0 * 6.1)), new Point((int)(width / 30.0 * 3.2), (int)(height / 20.0 * 7.3)), new Point((int)(width / 30.0 * 4), (int)(height / 20.0 * 5.3)), new Point((int)(width / 30.0 * 2), (int)(height / 20.0 * 4.1)), new Point((int)(width / 30.0 * 4.3), (int)(height / 20.0 * 4.1)), }; } //工人星 private Point[] PentacleB(int width, int height) { return new Point[] { new Point((int)(width / 30.0 * 9.2), (int)(height / 20.0 * 2.5)), new Point((int)(width / 30.0 * 9.6), (int)(height / 20.0 * 2)), new Point((int)(width / 30.0 * 9.3), (int)(height / 20.0 * 1.4)), new Point((int)(width / 30.0 * 9.95), (int)(height / 20.0 * 1.7)), new Point((int)(width / 30.0 * 10.45), (int)(height / 20.0 * 1.1)), new Point((int)(width / 30.0 * 10.36), (int)(height / 20.0 * 1.85)), new Point((int)(width / 30.0 * 11), (int)(height / 20.0 * 2.1)), new Point((int)(width / 30.0 * 10.34), (int)(height / 20.0 * 2.25)), new Point((int)(width / 30.0 * 10.3), (int)(height / 20.0 * 2.95)), new Point((int)(width / 30.0 * 9.9), (int)(height / 20.0 * 2.3)) }; } //农民星 private Point[] PentacleC(int width, int height) { return new Point[] { new Point((int)(width / 30.0 * 11), (int)(height / 20.0 * 4.1)), new Point((int)(width / 30.0 * 11.65), (int)(height / 20.0 * 3.8)), new Point((int)(width / 30.0 * 11.55), (int)(height / 20.0 * 3.05)), new Point((int)(width / 30.0 * 12.05), (int)(height / 20.0 * 3.6)), new Point((int)(width / 30.0 * 12.7), (int)(height / 20.0 * 3.3)), new Point((int)(width / 30.0 * 12.35), (int)(height / 20.0 * 3.98)), new Point((int)(width / 30.0 * 12.9), (int)(height / 20.0 * 4.5)), new Point((int)(width / 30.0 * 12.1), (int)(height / 20.0 * 4.3)), new Point((int)(width / 30.0 * 11.8), (int)(height / 20.0 * 5)), new Point((int)(width / 30.0 * 11.7), (int)(height / 20.0 * 4.2)) }; } //小资星 private Point[] PentacleD(int width, int height) { return new Point[] { new Point((int)(width / 30.0 * 11.1), (int)(height / 20.0 * 6.7)), new Point((int)(width / 30.0 * 11.8), (int)(height / 20.0 * 6.7)), new Point((int)(width / 30.0 * 12), (int)(height / 20.0 * 6)), new Point((int)(width / 30.0 * 12.2), (int)(height / 20.0 * 6.7)), new Point((int)(width / 30.0 * 12.9), (int)(height / 20.0 * 6.7)), new Point((int)(width / 30.0 * 12.35), (int)(height / 20.0 * 7.1)), new Point((int)(width / 30.0 * 12.55), (int)(height / 20.0 * 7.8)), new Point((int)(width / 30.0 * 12), (int)(height / 20.0 * 7.4)), new Point((int)(width / 30.0 * 11.45), (int)(height / 20.0 * 7.8)), new Point((int)(width / 30.0 * 11.65), (int)(height / 20.0 * 7.1)) }; } //民资星(工人星向下平移7个单位) private Point[] PentacleE(int width, int height) { return new Point[] { new Point((int)(width / 30.0 * 9.2), (int)(height / 20.0 * 9.5)), new Point((int)(width / 30.0 * 9.6), (int)(height / 20.0 * 9)), new Point((int)(width / 30.0 * 9.3), (int)(height / 20.0 * 8.4)), new Point((int)(width / 30.0 * 9.95), (int)(height / 20.0 * 8.7)), new Point((int)(width / 30.0 * 10.45), (int)(height / 20.0 * 8.1)), new Point((int)(width / 30.0 * 10.36), (int)(height / 20.0 * 8.85)), new Point((int)(width / 30.0 * 11), (int)(height / 20.0 * 9.1)), new Point((int)(width / 30.0 * 10.34), (int)(height / 20.0 * 9.25)), new Point((int)(width / 30.0 * 10.3), (int)(height / 20.0 * 9.95)), new Point((int)(width / 30.0 * 9.9), (int)(height / 20.0 * 9.3)) }; } } } |
希望本文所述对大家的C#程序设计有所帮助。
代码注释