PointGenerator.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Collections.Generic;
  3. namespace Poly2Tri.Triangulation.Util
  4. {
  5. public class PointGenerator
  6. {
  7. private static readonly Random RNG = new Random();
  8. public static List<TriangulationPoint> UniformDistribution(int n, double scale)
  9. {
  10. List<TriangulationPoint> points = new List<TriangulationPoint>();
  11. for (int i = 0; i < n; i++)
  12. {
  13. points.Add(new TriangulationPoint(scale*(0.5 - RNG.NextDouble()), scale*(0.5 - RNG.NextDouble())));
  14. }
  15. return points;
  16. }
  17. public static List<TriangulationPoint> UniformGrid(int n, double scale)
  18. {
  19. double x = 0;
  20. double size = scale/n;
  21. double halfScale = 0.5*scale;
  22. List<TriangulationPoint> points = new List<TriangulationPoint>();
  23. for (int i = 0; i < n + 1; i++)
  24. {
  25. x = halfScale - i*size;
  26. for (int j = 0; j < n + 1; j++)
  27. {
  28. points.Add(new TriangulationPoint(x, halfScale - j*size));
  29. }
  30. }
  31. return points;
  32. }
  33. }
  34. }