计算国旗比例

首先通过CAD绘制出国旗的数据图,图中包含角度和边长数据,通过计算得到相关的比例关系。

如下:国旗的长:宽= 3:2;

           以国旗的对角线的交点为圆心绘制国旗中的圆

           大圆半径R:小圆半径r=2:1;

           国旗的长:大圆半径=6:1;

           圆心到卦内边的距离:大圆半径 = 3:2;

           卦长:卦宽= 3:2;

           圆心到卦外边的距离:圆心到卦内边的距离= 3:2;

           卦的小黑条的宽:卦的小白条的宽= 2:1;

           卦的小黑条的长:卦的小白条= 5.3:1;

通过上述的比例关系可以按照步骤绘制出成比例的韩国国旗。

var g = this.pictureBox1.CreateGraphics();
            var p = new Pen(Color.Black);
            var brush = new SolidBrush(Color.White);
            g.FillRectangle(brush, 0,0,300,200);

            var g1 = this.pictureBox1.CreateGraphics();
            var brush1 = new SolidBrush(Color.Red);
            brush1.Color = Color.Red;
            var rect1 = new Rectangle(100, 50, 100, 100);
            g1.FillEllipse(brush1, 100, 50,100,100);
            g1.DrawEllipse(p, rect1);

            var g2 = this.pictureBox1.CreateGraphics();
            var brush2 = new SolidBrush(Color.Blue);
            g2.FillEllipse(brush2, 146, 89, 50, 50);
            var rect2 = new Rectangle(146, 89, 50, 50);
            g2.DrawEllipse(p, rect2);

         
            var g4 = this.pictureBox1.CreateGraphics();
            var brush4 = new SolidBrush(Color.Blue);
            g4.FillPie(brush4, 100, 50, 100, 100, 34,180);
            var g3 = this.pictureBox1.CreateGraphics();
            var p3 = new Pen(Color.Red);
            var brush3 = new SolidBrush(Color.Red);
            g3.FillEllipse(brush3, 104, 61, 50, 50);
            var rect3 = new Rectangle(104, 61, 50, 50);
            g3.DrawEllipse(p3, rect3);
            var  g0= this.pictureBox1.CreateGraphics();
            SolidBrush redBrush = new SolidBrush(Color.Black);
            System.Drawing.Point point1 = new System.Drawing.Point(226, 122);//
            System.Drawing.Point point2 = new System.Drawing.Point(200, 162);//
            System.Drawing.Point point4 = new System.Drawing.Point(206, 167);//
            System.Drawing.Point point3 = new System.Drawing.Point(233, 126);//
            
            System.Drawing.Point[] points = { point1, point2, point4, point3 };
            g0.FillPolygon(redBrush, points, System.Drawing.Drawing2D.FillMode.Alternate);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值