internal static IEnumerable <DrawingWord> GetReadyWords(IEnumerable <WordStatistic> wordsStatistic, BaseCloudLayouter layouter, FontFamily fontFamily, IWordPainter wordPainter) { var statistics = wordsStatistic.ToList(); if (statistics.Count == 0) { yield break; } var maxCount = statistics.Max(x => x.Count); var fonts = new Font[MaximalFontSize - MininalFontSize + 1]; var graphics = Graphics.FromImage(new Bitmap(1, 1)); foreach (var statistic in statistics) { var fontSize = (int)((MaximalFontSize - MininalFontSize) * ((double)statistic.Count / maxCount) + MininalFontSize); // ReSharper disable once ConstantNullCoalescingCondition fonts[fontSize - MininalFontSize] ??= new Font(fontFamily, fontSize); var font = fonts[fontSize - MininalFontSize]; var size = wordPainter.GetWordSize(statistic.Word, font); var word = new DrawingWord(statistic.Word, font, layouter.PutNextRectangle(size).Location); yield return(word); } }
public Color GetColor(DrawingWord word) { return(Color.Black); }
public Color GetColor(DrawingWord word) { var colors = Enum.GetValues(typeof(KnownColor)); return(Color.FromKnownColor((KnownColor)colors.GetValue(random.Next(0, colors.Length - 1)) !)); }
public Color GetColor(DrawingWord word) { return(Color.FromArgb(random.Next(255), random.Next(255), random.Next(255))); }