Facebook
From Harmless Meerkat, 1 Year ago, written in C#.
Embed
Download Paste or View Raw
Hits: 154
  1.   List<Triangle> GetSpherePoints()
  2.         {
  3.             Random rand = new Random();
  4.             Vertex p1, p2, p3, p4;
  5.             Triangle triangle;
  6.             double Angle = 10f / 180 * System.Math.PI;
  7.             double R = 1;
  8.             double Alpha = 0;
  9.             double Beta = 0;
  10.             List<Triangle> triangles = new List<Triangle>();
  11.  
  12.             while (Beta < System.Math.PI / 2)
  13.             {
  14.                 p1 = new Vertex(R * Cos(Alpha) * Cos(Beta), R * Sin(Alpha) * Cos(Beta), R * Sin(Beta));
  15.                 p2 = new Vertex(R * Cos(Alpha) * Cos(Beta + Angle), R * Sin(Alpha) * Cos(Beta + Angle), R * Sin(Beta + Angle));
  16.                 while (Alpha < System.Math.PI * 2)
  17.                 {
  18.                     p3 = new Vertex(R * Cos(Alpha + Angle) * Cos(Beta), R * Sin(Alpha + Angle) * Cos(Beta), R * Sin(Beta));
  19.                     p4 = new Vertex(R * Cos(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Beta + Angle));
  20.                     triangle = new Triangle(p1, p2, p3);
  21.                     int r = rand.Next(255);
  22.                     int g = rand.Next(255);
  23.                     int b = rand.Next(255);
  24.                     triangle.Color = new Lightning.Color(255, 255, 255);
  25.                     triangles.Add(triangle);
  26.                     triangle = new Triangle(p2, p3, p4);
  27.                     r = rand.Next(255);
  28.                     g = rand.Next(255);
  29.                     b = rand.Next(255);
  30.                     triangle.Color = new Lightning.Color(0, 255, 0);
  31.                     triangles.Add(triangle);
  32.                     p1 = p3;
  33.                     p2 = p4;
  34.                     Alpha += Angle;
  35.                 }
  36.                 Beta += Angle;
  37.                 Alpha = 0;
  38.             }
  39.             Beta = 0;
  40.             Alpha = 0;
  41.             while (Beta > -System.Math.PI / 2)
  42.             {
  43.                 p1 = new Vertex(R * Cos(Alpha) * Cos(Beta), R * Sin(Alpha) * Cos(Beta), R * Sin(Beta));
  44.                 p2 = new Vertex(R * Cos(Alpha) * Cos(Beta + Angle), R * Sin(Alpha) * Cos(Beta + Angle), R * Sin(Beta + Angle));
  45.                 while (Alpha < System.Math.PI * 2)
  46.                 {
  47.                     p3 = new Vertex(R * Cos(Alpha + Angle) * Cos(Beta), R * Sin(Alpha + Angle) * Cos(Beta), R * Sin(Beta));
  48.                     p4 = new Vertex(R * Cos(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Beta + Angle));
  49.                     triangle = new Triangle(p1, p2, p3);
  50.                     int r = rand.Next(255);
  51.                     int g = rand.Next(255);
  52.                     int b = rand.Next(255);
  53.                     triangle.Color = new Lightning.Color(255, 255, 255);
  54.                     triangles.Add(triangle);
  55.                     triangle = new Triangle(p2, p3, p4);
  56.                     r = rand.Next(255);
  57.                     g = rand.Next(255);
  58.                     b = rand.Next(255);
  59.                     triangle.Color = new Lightning.Color(255, 0, 0);
  60.                     triangles.Add(triangle);
  61.                     p1 = p3;
  62.                     p2 = p4;
  63.                     Alpha += Angle;
  64.                 }
  65.                 Beta -= Angle;
  66.                 Alpha = 0;
  67.             }
  68.  
  69.             return triangles;
  70.         }
  71.