public static VertexStore ScaleToNewVxs(this VertexStore src, double sx, double sy, VertexStore outputVxs)
 {
     return(AffineMat.GetScaleMat(sx, sy).TransformToVxs(src, outputVxs));
     ////TODO: review here, use struct mat
     //Affine aff = Affine.NewScaling(sx, sy);
     //return aff.TransformToVxs(src, outputVxs);
 }
Example #2
0
 public void WriteUnFlattenOutput(VertexStore output, float scale)
 {
     if (scale == 1)
     {
         output.AppendVertexStore(_vxs);
     }
     else
     {
         AffineMat.GetScaleMat(scale).TransformToVxs(_vxs, output);
     }
 }
Example #3
0
 /// <summary>
 /// write output to vxs, use user's curve flattener
 /// </summary>
 /// <param name="output"></param>
 /// <param name="scale"></param>
 public void WriteOutput(VertexStore output, CurveFlattener curveFlattener, float scale = 1)
 {
     if (scale == 1)
     {
         curveFlattener.MakeVxs(_vxs, output);
     }
     else
     {
         AffineMat mat = AffineMat.GetScaleMat(scale);
         curveFlattener.MakeVxs(_vxs, mat, output);
     }
 }
Example #4
0
 MemBitmap CreateHalfSize(MemBitmap orgBmp)
 {
     //TODO: ...
     //
     //1. create a new one
     MemBitmap smallBmp = new MemBitmap(orgBmp.Width / 2, orgBmp.Height / 2);
     using (Tools.BorrowAggPainter(smallBmp, out var painter))
     {
         AffineMat mat = AffineMat.GetScaleMat(0.5);
         painter.DrawImage(orgBmp, mat);
     }
     return smallBmp;
 }
Example #5
0
        public GradientDemo()
        {
            //solid brush
            _solidBrush = new SolidBrush(Color.Blue);

            //1. linear gradient
            _linearGrBrush = new LinearGradientBrush(
                new PointF(0, 0), new PointF(200, 200),
                new ColorStop[]
            {
                new ColorStop(0.0f, Drawing.Color.Black),
                new ColorStop(0.20f, Drawing.Color.Red),
                new ColorStop(0.50f, Drawing.KnownColors.OrangeRed),
                new ColorStop(0.75f, Drawing.Color.Yellow)
            });


            //2. circular gradient
            _circularGrBrush = new RadialGradientBrush(
                new PointF(50, 20), new PointF(300, 20),
                new ColorStop[]
            {
                //for test different colors
                new ColorStop(0.0f, Drawing.Color.Yellow),
                new ColorStop(0.25f, Drawing.Color.Blue),
                new ColorStop(0.50f, Drawing.Color.Green),
                new ColorStop(0.75f, Drawing.Color.Yellow),
            });



            //3. polygon gradient: this version, just a simple rect

            //PolygonGradientBrush.ColorVertex2d[] vertices = new PolygonGradientBrush.ColorVertex2d[]
            // {
            //        new PolygonGradientBrush.ColorVertex2d(5,50,KnownColors.OrangeRed),
            //        new PolygonGradientBrush.ColorVertex2d(50,50,Color.Black),
            //        new PolygonGradientBrush.ColorVertex2d(50,5,Color.Yellow),
            //        new PolygonGradientBrush.ColorVertex2d(5,5,Color.Blue),
            // };
            //PolygonGradientBrush.ColorVertex2d[] vertices = new PolygonGradientBrush.ColorVertex2d[]
            //{
            //        new PolygonGradientBrush.ColorVertex2d(5,300,KnownColors.OrangeRed),
            //        new PolygonGradientBrush.ColorVertex2d(300,300,Color.Black),
            //        new PolygonGradientBrush.ColorVertex2d(300,5,Color.Yellow),
            //        new PolygonGradientBrush.ColorVertex2d(5,5,Color.Blue),
            //};
            //PolygonGradientBrush.ColorVertex2d[] vertices = new PolygonGradientBrush.ColorVertex2d[]
            //{
            //    new PolygonGradientBrush.ColorVertex2d(5,5,Color.Blue),
            //    new PolygonGradientBrush.ColorVertex2d(220,5,Color.Yellow),
            //    new PolygonGradientBrush.ColorVertex2d(220,100,Color.Black),
            //    new PolygonGradientBrush.ColorVertex2d(5,220,KnownColors.OrangeRed),
            //};
            PolygonGradientBrush.ColorVertex2d[] vertices = new PolygonGradientBrush.ColorVertex2d[]
            {
                new PolygonGradientBrush.ColorVertex2d(0, 0, Color.Blue),
                new PolygonGradientBrush.ColorVertex2d(300, 0, Color.Yellow),
                new PolygonGradientBrush.ColorVertex2d(300, 300, Color.Black),
                new PolygonGradientBrush.ColorVertex2d(0, 300, KnownColors.OrangeRed),
            };
            _polygonGradientBrush = new PolygonGradientBrush(vertices);

            using (Tools.BorrowVxs(out var v1, out var v2))
                using (Tools.BorrowPathWriter(v1, out PathWriter p))
                {
                    p.MoveTo(0, 0);
                    p.LineTo(50, 20);
                    p.LineTo(10, 100);
                    p.CloseFigure();

                    AffineMat aff1 = AffineMat.GetScaleMat(2);
                    _triangleVxs = v1.CreateTrim(aff1);

                    AffineMat tx = AffineMat.GetTranslateMat(200, 220);
                    _triangleVxs2 = tx.TransformToVxs(_triangleVxs, v2).CreateTrim();
                }
        }