public WordInfo[] SelectTopWordsInfo(string[] words, int top) { var statistic = new WordsStatistic(); for (var i = 0; i < words.Length; i++) { var neighbours = SelectNeighbours(words, i); statistic.AddWord(words[i], neighbours); } return(statistic.SelectTop(top).ToArray()); }
private bool TryPlaceWord(WordsStatistic wordsStatistic, out TagCloudElement tagCloudElement) { var font = GetFont(wordsStatistic.Count); var boundsRect = _measureString(wordsStatistic.Word, font); Point location; if (!TryGetLocationForRect(boundsRect, out location)) { tagCloudElement = null; return false; } var position = new Rectangle(location, boundsRect); _badPlaces.Add(position); tagCloudElement = new TagCloudElement(wordsStatistic.Word, position, GetRandomColor(), font); return true; }