public DragonPainter(IImageHolder imageHolder, DragonSettings settings) { this.imageHolder = imageHolder; this.settings = settings; imageSize = imageHolder.GetImageSize(); size = Math.Min(imageSize.Width, imageSize.Height) / 2.1f; }
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(); }
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(); }
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")); }
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(); }
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(); }
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)); }
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); }
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(); }
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); }
public KochPainter(IImageHolder imageHolder, Palette palette) { this.imageHolder = imageHolder; this.palette = palette; imageSize = imageHolder.GetImageSize(); }