Ejemplo n.º 1
0
        /// <summary>
        /// draw object
        /// </summary>
        /// <param name="g"></param>
        /// <param name="pictureBox"></param>
        public override void Draw(Graphics g, ZWPictureBox pictureBox)
        {
            Point p1 = Point.Empty; // previous point
            Point p2 = Point.Empty; // current point

            g.SmoothingMode = SmoothingMode.AntiAlias;

            using (Pen pen = new Pen(GraphicsProperties.Color, GraphicsProperties.PenWidth))
            {
                PointFEnumerator enumerator = pointArray.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    p1 = Point.Ceiling(enumerator.Current);
                    p1.Offset(MovingOffset);
                }
                while (enumerator.MoveNext())
                {
                    p2 = Point.Ceiling(enumerator.Current);
                    p2.Offset(MovingOffset);
                    g.DrawLine(pen, p1, p2);
                    p1 = p2;
                }
                enumerator.Reset();
                if (enumerator.MoveNext())
                {
                    p2 = Point.Ceiling(enumerator.Current);
                    p2.Offset(MovingOffset);
                    g.DrawLine(pen, p1, p2);
                }
            }
        }
Ejemplo n.º 2
0
        private string GetCircumference()
        {
            Point            p1         = Point.Empty; // previous point
            Point            p2         = Point.Empty; // current point
            double           sum        = 0;
            PointFEnumerator enumerator = pointArray.GetEnumerator();

            if (enumerator.MoveNext())
            {
                p1 = Point.Ceiling(enumerator.Current);
                p1.Offset(MovingOffset);
            }
            while (enumerator.MoveNext())
            {
                p2 = Point.Ceiling(enumerator.Current);
                p2.Offset(MovingOffset);
                float x = System.Math.Abs(p2.X - p1.X);
                float y = System.Math.Abs(p2.Y - p1.Y);
                sum += Math.Sqrt(x * x + y * y) / UnitOfMeasureFactor;
                p1   = p2;
            }
            enumerator.Reset();
            if (enumerator.MoveNext())
            {
                p2 = Point.Ceiling(enumerator.Current);
                p2.Offset(MovingOffset);
            }
            return(string.Format("{0:F2} {1}", sum, pictureBox.UnitOfMeasure.ToString()));
        }