Esempio n. 1
0
        private void runTest(int samples, double radius)
        {
            double[] times = new double[samples];

            Stopwatch watch = new Stopwatch();
            Random    rand  = new Random();

            Console.WriteLine("Cores: " + Environment.ProcessorCount);
            Console.WriteLine("64bit:" + Environment.Is64BitProcess + Environment.NewLine);

            for (int s = 0; s < samples; s++)
            {
                List <Vector3D>    points  = new List <Vector3D>();
                List <PoissonDisc> tPoints = PoissonDiscSampling.Sample3D(84357, radius, new Vector3D(5, 5, 5), 4, false);

                foreach (PoissonDisc disc in tPoints)
                {
                    points.Add(new Vector3D(disc.position.X, disc.position.Y, disc.position.Z));
                }

                ConvexHull3D hull = new ConvexHull3D();
                Console.WriteLine(points.Count);
                watch.Restart();
                points = hull.ConstructHull(points);
                watch.Stop();
                Console.WriteLine(points.Count);
                times[s] = watch.Elapsed.TotalMilliseconds;
            }
            Console.WriteLine(samples + ": avg => " + times.Average() + " | best => " + times.Min() + " | worst => " + times.Max());
        }