示例#1
0
        public VisualizedWord[] Calculate <TWord>(IWordCloudAppearenceArguments args, IEnumerable <TWord> wordSource, Func <TWord, IWeightedWord> extractWord)
        {
            var appearenceCalculationMethod = Activator.CreateInstance(WordAppearenceCalculationMethodType) as IWordAppearenceCalculationMethod;

            if (wordSource == null || appearenceCalculationMethod == null)
            {
                return(new VisualizedWord[0]);
            }
            appearenceCalculationMethod.Arguments = args;

            var result = wordSource.Select(extractWord).OrderByDescending(word => word.Weight)
                         .TakeWhile(word => appearenceCalculationMethod.CanAddWords)
                         .Select((word, index) =>
            {
                if (index == 0)
                {
                    appearenceCalculationMethod.MaxWeight = word.Weight;
                }
                return(appearenceCalculationMethod.CalculateWordAppearence(word, index));
            }).ToArray();

            return(result);
        }
示例#2
0
 public VisualizedWord[] Calculate(IWordCloudAppearenceArguments args, IEnumerable <IWeightedWord> wordSource)
 {
     return(Calculate(args, wordSource, word => word));
 }