public static void CalculateCloudBuckets(ITagCloudTag[] tagCloudTags) { //ITagCloudTag has two properties TagFrequency & TagCloudBucket //ITagCloudTag.TagFrequency has already been set List<ITagCloudTag> tags = tagCloudTags.ToList<ITagCloudTag>(); // Get Max and Min Occurrence int minFrequency = tags.Min(p => p.TagFrequency); int maxFrequency = tags.Max(p => p.TagFrequency); // Calculate Frequencies foreach (ITagCloudTag tag in tags) { if (tag.TagFrequency > 0) { double weight = (Math.Log(tag.TagFrequency) - Math.Log(minFrequency)) / (Math.Log(maxFrequency) - Math.Log(minFrequency)); tag.TagCloudBucket = Convert.ToInt32(TagCloudGenerator.minFontSize + ((TagCloudGenerator.maxFontSize - TagCloudGenerator.minFontSize) * weight)); } else { tag.TagCloudBucket = 0; } } } |