Example #1
0
 public DragonPainter(IImageHolder imageHolder, DragonSettings settings)
 {
     this.imageHolder = imageHolder;
     this.settings    = settings;
     imageSize        = imageHolder.GetImageSize();
     size             = Math.Min(imageSize.Width, imageSize.Height) / 2.1f;
 }
Example #2
0
 public CloudPainter(IImageHolder imageHolder,
                     ICircularCloudLayouterSettings settings, IPalette palette, ICircularCloudLayouter layouter)
 {
     this.imageHolder = imageHolder;
     this.settings    = settings;
     this.palette     = palette;
     this.layouter    = layouter;
     this.rnd         = new Random();
     imageSize        = imageHolder.GetImageSize();
 }
Example #3
0
 public void Paint()
 {
     using (var graphics = imageHolder.StartDrawing())
     {
         imageSize = imageHolder.GetImageSize();
         graphics.FillRectangle(new SolidBrush(palette.BackgroundColor), 0, 0, imageSize.Width, imageSize.Height);
         DrawSegment(graphics, 0, imageSize.Height * 0.9f, imageSize.Width, imageSize.Height * 0.9f, true);
     }
     imageHolder.UpdateUi();
 }
Example #4
0
        public Result <None> Paint(Point center, WordInfo[] wordInfos)
        {
            var radius = (int)wordInfos.Select(wordInfo => wordInfo.Rect)
                         .Select(rect => Math.Ceiling(rect.Location.DistanceTo(center))).Max();
            var bitmapSize = GetBitmapSize(wordInfos.Select(info => info.Rect), center);

            return(holder.GetImageSize()
                   .Then(imageSize => CheckImageSize(imageSize, bitmapSize))
                   .Then(imageSize => DrawPicture(imageSize, center, radius, wordInfos))
                   .RefineError("Can't draw picture"));
        }
Example #5
0
 public void Paint()
 {
     using (var graphics = imageHolder.StartDrawing())
     {
         var imageSize = imageHolder.GetImageSize();
         var size      = Math.Min(imageSize.Width, imageSize.Height) / 2.1f;
         graphics.FillRectangle(new SolidBrush(palette.BackgroundColor), 0, 0, imageSize.Width, imageSize.Height);
         DrawDragon(size, graphics, imageSize);
     }
     imageHolder.UpdateUi();
 }
Example #6
0
        public CloudWithWordsPainter(IImageHolder imageHolder,
                                     ICircularCloudLayouterWithWordsSettings settings, IPalette palette, ICircularCloudLayouter layouter,
                                     Dictionary <string, int> words)
        {
            this.imageHolder = imageHolder;
            this.settings    = settings;
            this.palette     = palette;
            this.layouter    = layouter;
            this.words       = words;

            imageSize = imageHolder.GetImageSize();
        }
Example #7
0
        private Result <bool> RectangleIsInsideImage(Rectangle rectangle)
        {
            var getImageSizeResult = imageHolder.GetImageSize();

            if (!getImageSizeResult.IsSuccess)
            {
                return(new Result <bool>(getImageSizeResult.Error));
            }
            var imageSize = getImageSizeResult.Value;

            return(new Result <bool>(null, rectangle.Left >= 0 && rectangle.Right <= imageSize.Width &&
                                     rectangle.Top >= 0 &&
                                     rectangle.Bottom <= imageSize.Height));
        }
Example #8
0
 public void SetUp()
 {
     imageHolder = A.Fake <IImageHolder>();
     settings    = A.Fake <ICircularCloudLayouterWithWordsSettings>();
     palette     = A.Fake <IPalette>();
     layouter    = A.Fake <ICircularCloudLayouter>();
     graphics    = A.Fake <IGraphicDrawer>();
     A.CallTo(() => imageHolder.GetImageSize()).Returns(new Size(600, 600));
     A.CallTo(() => imageHolder.StartDrawing()).Returns(graphics);
     A.CallTo(() => settings.CenterX).Returns(300);
     A.CallTo(() => settings.Scale).Returns(5);
     A.CallTo(() => settings.CenterY).Returns(300);
     A.CallTo(() => palette.PrimaryColor).Returns(Color.Black);
     A.CallTo(() => palette.BackgroundColor).Returns(Color.Black);
     A.CallTo(() => palette.SecondaryColor).Returns(Color.Black);
 }
Example #9
0
        public void Paint()
        {
            var imageSize = imageHolder.GetImageSize();
            var size      = Math.Min(imageSize.Width, imageSize.Height) / 2.1f;

            using (var graphics = imageHolder.StartDrawing())
            {
                graphics.FillRectangle(
                    new SolidBrush(palette.BackgroundColor),
                    0, 0,
                    imageSize.Width, imageSize.Height);

                var r = new Random();

                var cosa = (float)Math.Cos(settings.Angle1);
                var sina = (float)Math.Sin(settings.Angle1);
                var cosb = (float)Math.Cos(settings.Angle2);
                var sinb = (float)Math.Sin(settings.Angle2);

                var shiftX = settings.ShiftX * size * 0.8f;
                var shiftY = settings.ShiftY * size * 0.8f;
                var scale  = settings.Scale;

                var p = new PointF(0, 0);

                foreach (var i in Enumerable.Range(0, settings.IterationsCount))
                {
                    graphics.FillRectangle(
                        new SolidBrush(palette.PrimaryColor),
                        imageSize.Width / 3f + p.X, imageSize.Height / 2f + p.Y,
                        1, 1);

                    p = r.Next(0, 2) == 0
                        ? new PointF(scale * (p.X * cosa - p.Y * sina), scale * (p.X * sina + p.Y * cosa))
                        : new PointF(scale * (p.X * cosb - p.Y * sinb) + shiftX, scale * (p.X * sinb + p.Y * cosb) + shiftY);

                    if (i % 100 == 0)
                    {
                        imageHolder.UpdateUi();
                    }
                }
            }

            imageHolder.UpdateUi();
        }
Example #10
0
 public void SetUp()
 {
     imageHolder = A.Fake <IImageHolder>();
     settings    = A.Fake <ICircularCloudLayouterSettings>();
     palette     = A.Fake <IPalette>();
     layouter    = A.Fake <ICircularCloudLayouter>();
     graphics    = A.Fake <IGraphicDrawer>();
     A.CallTo(() => imageHolder.GetImageSize()).Returns(new Size(600, 600));
     A.CallTo(() => imageHolder.StartDrawing()).Returns(graphics);
     A.CallTo(() => settings.MinSize).Returns(10);
     A.CallTo(() => settings.MaxSize).Returns(30);
     A.CallTo(() => settings.CenterX).Returns(300);
     A.CallTo(() => settings.CenterY).Returns(300);
     A.CallTo(() => settings.IterationsCount).Returns(5);
     A.CallTo(() => settings.XCompression).Returns(1);
     A.CallTo(() => settings.YCompression).Returns(1);
     A.CallTo(() => palette.PrimaryColor).Returns(Color.Black);
     A.CallTo(() => palette.BackgroundColor).Returns(Color.Black);
     A.CallTo(() => palette.SecondaryColor).Returns(Color.Black);
 }
Example #11
0
 public KochPainter(IImageHolder imageHolder, Palette palette)
 {
     this.imageHolder = imageHolder;
     this.palette     = palette;
     imageSize        = imageHolder.GetImageSize();
 }