Beispiel #1
0
        public void SmoothenArray(int pKernelMultiplier)
        {
            List <TypeField> fieldsRandom = fields;

            //todo: dont use during testing, otherwise result is nondeterministic
            if (useRandomForSmoothing)
            {
                fieldsRandom.Shuffle();
            }

            //prepare gauss kernel
            int kernelSize = GetKernelSize();

            kernelSize *= pKernelMultiplier;
            //cant work with even sized kernel
            if (kernelSize % 2 == 0)
            {
                kernelSize++;
            }
            double[,] gaussKernel = CUtils.CalculateGaussKernel(kernelSize, 1);

            foreach (CField el in fieldsRandom)
            {
                el.CalculateSmoothHeight(gaussKernel);
            }
        }