Beispiel #1
0
        /// <summary>
        /// 绘制砂轮图
        /// </summary>
        public override void Draw(Graphics g, Point p0)
        {
            Console.WriteLine("调用CW3型砂轮绘图。");

            Pen p = new Pen(Color.Black, 1f);

            p.DashStyle = DashStyle.DashDot;

            //CDraw.SetCoordinate(g, p0);                 // 设置坐标

            p.Color     = Color.Blue;
            p.DashStyle = DashStyle.Solid;
            Point p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14;

            p1  = new Point(base.StartPos, (int)radiusS);
            p2  = new Point(base.StartPos, -(int)radiusS);
            p3  = new Point(base.StartPos + (int)mainThickness, (int)(mainThickness * CFunc.Tan(ang) + radiusS));
            p4  = new Point(base.StartPos + (int)mainThickness, -(int)(mainThickness * CFunc.Tan(ang) + radiusS));
            p5  = new Point(p3.X, (int)base.Radius);
            p6  = new Point(p3.X, -(int)base.Radius);
            p7  = new Point(base.StartPos + (int)base.Thickness, (int)base.Radius);
            p8  = new Point(base.StartPos + (int)base.Thickness, -(int)base.Radius);
            p9  = new Point(base.StartPos + (int)edgeThickness, (int)radiusI);
            p10 = new Point(base.StartPos + (int)edgeThickness, -(int)radiusI);
            p11 = new Point(p3.X, (int)((mainThickness - edgeThickness) * CFunc.Tan(ang) + radiusI));
            p12 = new Point(p3.X, -(int)((mainThickness - edgeThickness) * CFunc.Tan(ang) + radiusI));
            p13 = new Point(base.StartPos + (int)base.Thickness, p11.Y);
            p14 = new Point(base.StartPos + (int)base.Thickness, p12.Y);

            EndPos = p13.X;

            g.DrawLine(p, p1, p3);
            g.DrawLine(p, p3, p5);
            g.DrawLine(p, p5, p7);
            //g.DrawLine(p, p5, p11);
            g.DrawLine(p, p7, p13);
            g.DrawLine(p, p11, p13);

            g.DrawLine(p, p2, p4);
            g.DrawLine(p, p4, p6);
            g.DrawLine(p, p6, p8);
            //g.DrawLine(p, p6, p12);
            g.DrawLine(p, p8, p14);
            g.DrawLine(p, p12, p14);

            g.DrawLine(p, p1, p2);
            g.DrawLine(p, p9, p10);
            g.DrawLine(p, p9, p11);
            g.DrawLine(p, p10, p12);
        }