Exemple #1
0
        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);
            }
        }
Exemple #2
0
 public Color GetColor(DrawingWord word)
 {
     return(Color.Black);
 }
Exemple #3
0
        public Color GetColor(DrawingWord word)
        {
            var colors = Enum.GetValues(typeof(KnownColor));

            return(Color.FromKnownColor((KnownColor)colors.GetValue(random.Next(0, colors.Length - 1)) !));
        }
Exemple #4
0
 public Color GetColor(DrawingWord word)
 {
     return(Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)));
 }