Advertisement
sMteX

GetIcosahedron()

Nov 13th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.23 KB | None | 0 0
  1.         public static G_Object getIcosahedron(int r)
  2.         {
  3.             const double GoldenRatio = 1.61803398874989484820458683436;
  4.             double shorter = (2 * r) / (Math.Sqrt(GoldenRatio + 1));
  5.             double longer = GoldenRatio * shorter;
  6.  
  7.             double halfLonger = longer / 2;
  8.             double halfShorter = shorter / 2;
  9.  
  10.             G_Point3D A = new G_Point3D(0, -halfLonger, -halfShorter);
  11.             G_Point3D B = new G_Point3D(0, -halfLonger, halfShorter);
  12.             G_Point3D L = new G_Point3D(0, halfLonger, halfShorter);
  13.             G_Point3D J = new G_Point3D(0, halfLonger, -halfShorter);
  14.  
  15.             G_Point3D E = new G_Point3D(halfShorter, 0, -halfLonger);
  16.             G_Point3D D = new G_Point3D(-halfShorter, 0, -halfLonger);
  17.             G_Point3D H = new G_Point3D(-halfShorter, 0, halfLonger);
  18.             G_Point3D G = new G_Point3D(halfShorter, 0, halfLonger);
  19.  
  20.             G_Point3D F = new G_Point3D(halfLonger, -halfShorter, 0);
  21.             G_Point3D K = new G_Point3D(halfLonger, halfShorter, 0);
  22.             G_Point3D I = new G_Point3D(-halfLonger, halfShorter, 0);
  23.             G_Point3D C = new G_Point3D(-halfLonger, -halfShorter, 0);
  24.  
  25.             List<G_Face> faces = new List<G_Face>();
  26.             faces.Add(new G_Face(A, B, C));
  27.             faces.Add(new G_Face(A, C, D));
  28.             faces.Add(new G_Face(A, D, E));
  29.             faces.Add(new G_Face(A, E, F));
  30.             faces.Add(new G_Face(A, F, B));
  31.             faces.Add(new G_Face(F, G, B));
  32.             faces.Add(new G_Face(B, G, H));
  33.             faces.Add(new G_Face(B, H, C));
  34.             faces.Add(new G_Face(C, H, I));
  35.             faces.Add(new G_Face(C, I, D));
  36.             faces.Add(new G_Face(D, I, J));
  37.             faces.Add(new G_Face(D, J, E));
  38.             faces.Add(new G_Face(E, J, K));
  39.             faces.Add(new G_Face(E, K, F));
  40.             faces.Add(new G_Face(F, K, G));
  41.             faces.Add(new G_Face(L, G, K));
  42.             faces.Add(new G_Face(L, H, G));
  43.             faces.Add(new G_Face(L, I, H));
  44.             faces.Add(new G_Face(L, J, I));
  45.             faces.Add(new G_Face(L, K, J));
  46.  
  47.             G_Object icosahedron = new G_Object(faces.ToArray());
  48.             return icosahedron;
  49.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement