System.Drawing.Drawing2D.PathGradientBrush.PathGradientBrush C# (CSharp) Метод

PathGradientBrush() публичный Метод

public PathGradientBrush ( GraphicsPath path ) : AppKit
path GraphicsPath
Результат AppKit
        public PathGradientBrush(GraphicsPath path)
        {
            if (path == null)
                throw new ArgumentNullException ("path");

            var pathClone = (GraphicsPath)path.Clone ();
            pathClone.CloseAllFigures ();
            pathClone.Flatten ();
            pathPoints = pathClone.PathPoints;

            // make sure we have a closed path
            if (pathPoints[0] != pathPoints[pathPoints.Length - 1])
            {
                var first = pathPoints [0];
                var temps = new PointF[pathPoints.Length + 1];
                for (var p = 0; p < pathPoints.Length; p++)
                    temps[p] = pathPoints[p];

                temps[temps.Length - 1] = first;

                pathPoints = temps;
            }

            rectangle = GeomUtilities.PolygonBoundingBox (pathPoints);
            centerPoint = GeomUtilities.PolygonCentroid (pathPoints);
            wrapMode = WrapMode.Clamp;

            // verify the winding of the polygon so that we cen calculate the
            // edges correctly
            var vt1 = pathPoints [0];
            var vt2 = centerPoint;
            var vt3 = pathPoints [1];

            var pWinding = vt1.X * vt2.Y - vt2.X * vt1.Y;
            pWinding += vt2.X * vt3.Y - vt3.X * vt2.Y;
            pWinding += vt3.X * vt1.Y - vt1.X * vt3.Y;

            // Positive is counter clockwise
            if (pWinding < 0)
                polygonWinding = FillMode.Alternate;

            blend = new Blend(1);
            blend.Factors = new float[]{ 1.0f};
            blend.Positions = new float[] { 1.0f };
        }

Same methods

PathGradientBrush::PathGradientBrush ( Point points ) : AppKit
PathGradientBrush::PathGradientBrush ( Point points, WrapMode wrapMode ) : AppKit
PathGradientBrush::PathGradientBrush ( PointF points ) : AppKit
PathGradientBrush::PathGradientBrush ( PointF points, WrapMode wrapMode ) : AppKit