CCT.NUI.Core.Clustering.ClusterPrototypeFactory.CreateClusters C# (CSharp) Method

CreateClusters() public method

public CreateClusters ( int numberOfClusters, IntSize areaSize ) : IList
numberOfClusters int
areaSize IntSize
return IList
        public IList<ClusterPrototype> CreateClusters(int numberOfClusters, IntSize areaSize)
        {
            Contract.Requires(numberOfClusters >= 0);
            Contract.Requires(areaSize.Width > 0 && areaSize.Height > 0);

            var result = new List<ClusterPrototype>();
            float sliceWidth = areaSize.Width / numberOfClusters;
            float sliceHeight = areaSize.Height / numberOfClusters;

            for (int index = 0; index < numberOfClusters; index++)
            {
                int minX = (int)((index) * sliceWidth);
                int maxX = (int)((index + 1) * sliceWidth);
                int minY = (int)((index) * sliceHeight);
                int maxY = (int)((index + 1) * sliceHeight);
                result.Add(this.CreateClusterWithin(minX, maxX, minY, maxY));
            }

            return result;
        }

Usage Example

Example #1
0
 public KMeans(int numberOfClusters, Range zRange, IntSize size)
 {
     this.size     = size;
     this.zRange   = zRange;
     this.clusters = clusterFactory.CreateClusters(numberOfClusters, size);
 }