Ejemplo n.º 1
0
        private void CalculateProfiledItemDistance(IPatternDistance calculator, ProfiledItem item, string profileName, ProfileItem profileItem, Pattern visitorPattern)
        {
            PatternSpace space       = profileItem.PatternSpace;
            Pattern      itemPattern = space.CreatePattern(item.ContentProfile);

            double distance = defaultDistance;

            if (visitorPattern != null)
            {
                distance = Math.Sqrt(calculator.GetDistance(visitorPattern, itemPattern));
            }

            var correctedDistance = distance;

            if (correctedDistance < minDistance)
            {
                correctedDistance = minDistance;
            }

            double gravity = 1.0d / (correctedDistance * correctedDistance);

            item.ProfiledItemCalculation = new ProfiledItemDistance(distance, gravity);
        }
Ejemplo n.º 2
0
 public DistanceCalculator()
 {
     calculator = new SquaredEuclidianDistance();
 }