Example #1
0
        private void InscribePolygon(PaintGraphics graphics, PaintRectangleF rectangle, int numSides)
        {
            float       Radius = (float)((double)Math.Min(rectangle.Width, rectangle.Height) / 2.0);
            ShapePointF Center = new ShapePointF(
                (float)(rectangle.Location.X + rectangle.Width / 2.0),
                (float)(rectangle.Location.Y + rectangle.Height / 2.0));
            PaintRectangleF rectangleF = new PaintRectangleF(Center, new ShaipSizeF(1, 1));

            rectangleF.Inflate(Radius, Radius);

            float Sides         = (float)numSides;
            float ExteriorAngle = (float)360 / Sides;
            float InteriorAngle = (Sides - (float)2) / Sides * (float)180;
            float SideLength    = (float)2 * Radius * (float)Math.Sin(Math.PI / (double)Sides);

            for (int i = 1; i <= Sides; i++)
            {
                graphics.ResetTransform();
                graphics.TranslateTransform(Center.X, Center.Y);
                graphics.RotateTransform((i - 1) * ExteriorAngle);
                graphics.TranslateTransform(0, -Radius);
                graphics.RotateTransform(180 - InteriorAngle / 2);
                graphics.MySmoothingMode = EPaintSmoothingMode.AntiAlias;
                PaintPen pen = new PaintPen(Color, Thickness);
                pen.StartCap = EPaintLineCap.Round;
                pen.EndCap   = EPaintLineCap.Round;
                graphics.DrawLine(
                    pen,
                    new ShapePointF(0, 0).ToPointF(),
                    new ShapePointF(0, -SideLength).ToPointF());
            }
        }
Example #2
0
        public void ToPenTest()
        {
            Pen      pen       = new Pen(Color.FromArgb(255, 0, 0, 0));
            PaintPen paintPen  = new PaintPen(pen);
            Pen      actualPen = paintPen.ToPen();

            Assert.AreSame(pen, actualPen);
        }
Example #3
0
        public void ConstructorPaintColorTest()
        {
            PaintColor paintColor = new PaintColor(40, 20, 30, 35);
            PaintPen   paintPen   = new PaintPen(paintColor);

            Pen actualPen = paintPen.ToPen();

            Assert.AreEqual(paintColor.A, actualPen.Color.A);
            Assert.AreEqual(paintColor.R, actualPen.Color.R);
            Assert.AreEqual(paintColor.G, actualPen.Color.G);
            Assert.AreEqual(paintColor.B, actualPen.Color.B);
        }
Example #4
0
        public override void Draw(PaintGraphics graphics)
        {
            (int x, int y, int width, int height) = CalculateRoundRect();

            graphics.MySmoothingMode = EPaintSmoothingMode.AntiAlias;
            PaintPen pen = new PaintPen(Color, Thickness);

            pen.LineJoin = EPainLinejoin.Round;
            PaintRectangleF   rect = new PaintRectangleF(x, y, width, height);
            PaintGraphicsPath path = this.GetRoundRectangle(rect, radius);

            graphics.DrawPath(pen, path);
        }