Facebook
From Voluminous Stork, 2 Months ago, written in C#.
Embed
Download Paste or View Raw
Hits: 61
  1.     public List<Triangle> CreateModel()
  2.         {
  3.              Point3D p1, p2, p3, p4;
  4.             Triangle triangle;
  5.             double Angle = 30f / 180 * PI;
  6.             double R = 0.5;
  7.             double Alpha = 0;
  8.             double Beta = 0;
  9.             List<Triangle> triangles = new List<Triangle>();
  10.             p1 = new Point3D(R * Cos(Alpha) * Cos(Beta), R * Sin(Alpha) * Cos(Beta), R * Sin(Beta), 1);
  11.             p2 = new Point3D(R * Cos(Alpha) * Cos(Beta + Angle), R * Sin(Alpha) * Cos(Beta + Angle), R * Sin(Beta + Angle), 1);
  12.             while (Beta <= PI / 2)
  13.             {
  14.                 while (Alpha <= PI * 2)
  15.                 {
  16.                     p3 = new Point3D(R * Cos(Alpha + Angle) * Cos(Beta), R * Sin(Alpha + Angle) * Cos(Beta), R * Sin(Beta), 1);
  17.                     p4 = new Point3D(R * Cos(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Beta + Angle), 1);
  18.                     triangle = new Triangle(p1, p2, p3);
  19.                     triangles.Add(triangle);
  20. //                    triangle = new Triangle(p2, p3, p4);
  21. //                    triangles.Add(triangle);
  22.                     p1 = p3;
  23.                     p2 = p4;
  24.                     Alpha += Angle;
  25.                 }
  26.                 Beta += Angle;
  27.                 Alpha = 0;
  28.             }
  29.            
  30.             Beta = 0;
  31.             Alpha = 0;
  32.            
  33.             while (Beta >= -PI / 2)
  34.             {
  35.                 while (Alpha <= PI * 2)
  36.                 {
  37.                     p3 = new Point3D(R * Cos(Alpha + Angle) * Cos(Beta), R * Sin(Alpha + Angle) * Cos(Beta), R * Sin(Beta), 1);
  38.                     p4 = new Point3D(R * Cos(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Alpha + Angle) * Cos(Beta + Angle), R * Sin(Beta + Angle), 1);
  39.                     triangle = new Triangle(p1, p2, p3);
  40.                     triangles.Add(triangle);
  41. //                    triangle = new Triangle(p2, p3, p4);
  42. //                    triangles.Add(triangle);
  43.                     p1 = p3;
  44.                     p2 = p4;
  45.                     Alpha += Angle;
  46.                 }
  47.                 Beta -= Angle;
  48.                 Alpha = 0;
  49.             }
  50.  
  51.             return triangles;
  52.         }