//******************** Stellation of the Icoasahedron ********************* //************************* All 59 Stellations *************************** //************************ J. Cranmer June 1995 *************************** //This scene file REQUIRES icosa59.inc //The stellations are all based on an icosahedron of unit side. //Some will have to be scaled to fit the display or the view point //changed. //The numbering system is based on that used by Coxeter et al in the //book "The Fifty-Nine Icsoahedra". The diagrams for the facial //planes used in icosa59.inc were taken directly from this work. #include "colors.inc" #include "textures.inc" #include "icosa59.inc" /******************************************************************/ /*************** Uncomment One declaration below ******************/ //#declare One_Third_face = Cox_1_1 //#declare One_Third_Face = Cox_1_2 //#declare One_Third_Face = Cox_1_3 //#declare One_Third_Face = Cox_1_4 //#declare One_Third_Face = Cox_2_1 //#declare One_Third_Face = Cox_2_2 //#declare One_Third_Face = Cox_2_3 //#declare One_Third_Face = Cox_3_1 //#declare One_Third_Face = Cox_4_1 //#declare One_Third_Face = Cox_4_2 //#declare One_Third_Face = Cox_4_3 //#declare One_Third_Face = Cox_5_1 //#declare One_Third_Face = Cox_5_2 //#declare One_Third_Face = Cox_5_3 //#declare One_Third_Face = Cox_6_1 //#declare One_Third_Face = Cox_6_2 //#declare One_Third_Face = Cox_6_3 //#declare One_Third_Face = Cox_7_1 //#declare One_Third_Face = Cox_7_2 //#declare One_Third_Face = Cox_7_3 //#declare One_Third_Face = Cox_8_1 //#declare One_Third_Face = Cox_8_2 //#declare One_Third_Face = Cox_8_3 //#declare One_Third_Face = Cox_9_1 //#declare One_Third_Face = Cox_9_2 //#declare One_Third_Face = Cox_9_3 //#declare One_Third_Face = Cox_10_1 //#declare One_Third_Face = Cox_10_3 //#declare One_Third_Face = Cox_11_1 //#declare One_Third_Face = Cox_11_2 #declare One_Third_Face = Cox_11_3 //#declare One_Third_Face = Cox_12_1 //#declare One_Third_Face = Cox_12_2 //#declare One_Third_Face = Cox_12_3 //#declare One_Third_Face = Cox_13_1 //#declare One_Third_Face = Cox_13_2 //#declare One_Third_Face = Cox_13_3 //#declare One_Third_Face = Cox_14_1 //#declare One_Third_Face = Cox_14_2 //#declare One_Third_Face = Cox_14_3 //#declare One_Third_Face = Cox_15_1 //#declare One_Third_Face = Cox_15_2 //#declare One_Third_Face = Cox_15_3 //#declare One_Third_Face = Cox_16_1 //#declare One_Third_Face = Cox_16_2 //#declare One_Third_Face = Cox_16_3 //#declare One_Third_Face = Cox_17_1 //#declare One_Third_Face = Cox_17_2 //#declare One_Third_Face = Cox_17_3 //#declare One_Third_Face = Cox_18_1 //#declare One_Third_Face = Cox_18_2 //#declare One_Third_Face = Cox_18_3 //#declare One_Third_Face = Cox_19_1 //#declare One_Third_Face = Cox_19_2 //#declare One_Third_Face = Cox_19_3 //#declare One_Third_Face = Cox_20_1 //#declare One_Third_Face = Cox_20_2 //#declare One_Third_Face = Cox_20_3 /******************************************************************/ /******************************************************************/ camera { location < 0, 0, -25 > direction < 0, 0, 3 > up < 0, 1, 0 > right < 4/3, 0, 0 > look_at < 0, 0, 0 > } light_source {< 100, 200, -300 > color White} light_source {<-100, 50, -300 > color Gray70} background {colour rgb<0.9, 0.8, 0.7>} #declare Offset = -0.755761; //radius of internal sphere //Points on the stellation diagram #declare A = < 0.000000, 0.577351, 0.000000 >; #declare B = <-0.500000,-0.288675, 0.000000 >; #declare C = < 0.500000,-0.288675, 0.000000 >; #declare D = <-0.585410, 0.337989, 0.000000 >; #declare E = < 0.585410, 0.337989, 0.000000 >; #declare F = <-0.654509, 0.844967, 0.000000 >; #declare G = < 0.654509, 0.844967, 0.000000 >; #declare H = <-0.309017, 1.112584, 0.000000 >; #declare I = < 0.309017, 1.112584, 0.000000 >; #declare J = < 0.000000, 1.351947, 0.000000 >; #declare K = <-0.809017, 1.978609, 0.000000 >; #declare L = < 0.809017, 1.978609, 0.000000 >; #declare M = <-3.427051, 1.978609, 0.000000 >; #declare N = < 3.427051, 1.978609, 0.000000 >; #declare O = <-0.947214, 0.964649, 0.000000 >; #declare P = < 0.947214, 0.964649, 0.000000 >; #declare Q = <-1.000000, 0.577351, 0.000000 >; #declare R = < 1.000000, 0.577351, 0.000000 >; #declare S = <-1.309017, 0.337987, 0.000000 >; #declare T = < 1.309017, 0.337987, 0.000000 >; #declare U = <-1.059017, 0.144338, 0.000000 >; #declare V = < 1.059017, 0.144338, 0.000000 >; #declare W = <-2.118034,-0.288675, 0.000000 >; #declare X = < 2.118034,-0.288675, 0.000000 >; #declare Y = < 5.545085, 5.647152, 0.000000 >; #declare Z = < 7.663119, 1.978609, 0.000000 >; #declare AA= < 6.854102,-3.957218, 0.000000 >; /******************************************************************/ // The Red triangles belong to the "internal" faces as // discribed by Coxeter // Declare the individual triangles used to make the stellations // Some are defined and used singularly in the non-symetrical stellations #declare T0 = triangle {A, B, C} #declare T1 = triangle {A, B, D} #declare T2 = union { triangle {A, D, F} triangle {A, G, E} } #declare T3 = union { triangle {E, G, R} triangle {E, V, R} } #declare T4 = union { triangle {A, I, G} triangle {A, F, H} } #declare T5a = triangle {F, H, K} #declare T5b = triangle {I, G, L} #declare T5 = union { object {T5a} object {T5b} } #declare T6a = triangle {Q, O, F} #declare T6b = triangle {G, P, R} #declare T6 = union { object {T6a} object {T6b} } #declare T7 = union { triangle {A, H, J} triangle {A, I, J} } #declare T8 = union { triangle {Q, S, M} triangle {Q, O, M} } #declare T9a = triangle {H, K, J} #declare T9b = triangle {L, I, J} #declare T9 = union { object {T9a} object {T9b} } #declare T10a = triangle {F, O, K} #declare T10b = triangle {G, P, L} #declare T10 = union { object {T10a} object {T10b} } #declare T11 = union { triangle {O, K, M} triangle {L, N, P} } #declare T12 = triangle {J, K, L} #declare T13 = union { triangle {J, X, Y} triangle {L, X, Z} } #declare T14 = triangle {W, K, AA} #declare Cox_1_1 = object { T0 } #declare Cox_1_2 = object { T1 } #declare Cox_1_3 = object { T2 } #declare Cox_1_4 = union { object { T3 } object { T4 } } #declare Cox_2_1 = union { object { T5 } object { T6 } object { T7 } } #declare Cox_2_2 = union { object { T8 } object { T9 } object { T10 } } #declare Cox_2_3 = union { object { T11 } object { T12 } } #declare Cox_3_1 = union { object { T13 } object { T14 } } #declare Cox_4_1 = union { object { T3 pigment { Red } } object { T5 } } #declare Cox_4_2 = union { object { T5 pigment { Red } } object { T6 pigment { Red } } object { T9 } object { T10 } } #declare Cox_4_3 = union { object { T10 pigment { Red } } object { T12 } } #declare Cox_5_1 = union { object { T3 pigment { Red } } object { T6 pigment { Red } } object { T9 } object { T10 } } #declare Cox_5_2 = union { object { T3 pigment { Red } } object { T6 pigment { Red } } object { T9 } object { T12 } } #declare Cox_5_3 = union { object { T5 pigment { Red } } object { T6 pigment { Red } } object { T9 } object { T12 } } #declare Cox_6_1 = union { object { T4 pigment { Red } } object { T6 } object { T7 } } #declare Cox_6_2 = union { object { T7 pigment { Red } } object { T8 } } #declare Cox_6_3 = union { object { T8 pigment { Red } } object { T9 pigment { Red } } object { T11 } } #declare Cox_7_1 = union { object { T4 pigment { Red } } object { T6 } object { T8 } } #declare Cox_7_2 = union { object { T4 pigment { Red } } object { T6 } object { T9 pigment { Red } } object { T11 } } #declare Cox_7_3 = union { object { T7 pigment { Red } } object { T9 pigment { Red } } object { T11 } } #declare Cox_8_1 = union { object { T4 } object { T5 } } #declare Cox_8_2 = union { object { T7 } object { T9 } object { T10 } } #declare Cox_8_3 = union { object { T8 } object { T9 } object { T12 } } #declare Cox_9_1 = union { object { T4 } object { T6 pigment { Red } } object { T9 } object { T10 } } #declare Cox_9_2 = union { object { T4 } object { T6 pigment { Red } } object { T9 } object { T12 } } #declare Cox_9_3 = union { object { T7 } object { T9 } object { T12 } } #declare Cox_10_1 = union { object { T3 } object { T6 } object { T7 } } #declare Cox_10_2 = union { object { T5 } object { T6 } object { T8 } } #declare Cox_10_3 = union { object { T10 } object { T11 } } #declare Cox_11_1 = union { object { T3 } object { T6 } object { T8 } } #declare Cox_11_2 = union { object { T3 } object { T6 } object { T9 pigment { Red } } object { T11 } } #declare Cox_11_3 = union { object { T5 } object { T6 } object { T9 pigment { Red } } object { T11 } } #declare Cox_12_1 = union { object { T5b pigment { Red } } object { T6b pigment { Red } } object { T9a } object { T10a } } #declare Cox_12_2 = union { object { T3 pigment { Red } } object { T5b } object { T6b pigment { Red } } object { T9b } object { T10b } } #declare Cox_12_3 = union { object { T4 } object { T5a } object { T6b pigment { Red } } object { T9a } object { T10a } } #declare Cox_13_1 = union { object { T5b pigment { Red } } object { T6b pigment { Red } } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_13_2 = union { object { T3 pigment { Red } } object { T5a } object { T6b pigment { Red } } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_13_3 = union { object { T4 } object { T5a } object { T6b pigment { Red } } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_14_1 = union { object { T5b pigment { Red } } object { T6b pigment { Red } } object { T8 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_14_2 = union { object { T3 pigment { Red } } object { T5a } object { T6b pigment { Red } } object { T8 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_14_3 = union { object { T4 } object { T5a } object { T6b pigment { Red } } object { T8 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_15_1 = union { object { T5b pigment { Red } } object { T6b pigment { Red } } object { T7 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_15_2 = union { object { T3 pigment { Red } } object { T5a } object { T6b pigment { Red } } object { T7 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_15_3 = union { object { T4 } object { T5a } object { T6b pigment { Red } } object { T7 pigment { Red } } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_16_1 = union { object { T4 pigment { Red } } object { T5b pigment { Red } } object { T6a } object { T7 } object { T9a } object { T10a } } #declare Cox_16_2 = union { object { T3 } object { T5b pigment { Red } } object { T6a } object { T7 } object { T9a } object { T10a } } #declare Cox_16_3 = union { object { T5a } object { T6a } object { T7 } object { T9a } object { T10a } } #declare Cox_17_1 = union { object { T4 pigment { Red } } object { T5b pigment { Red } } object { T6a } object { T7 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_17_2 = union { object { T3 } object { T5b pigment { Red } } object { T6a } object { T7 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_17_3 = union { object { T5a } object { T6a } object { T7 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_18_1 = union { object { T4 pigment { Red } } object { T5b pigment { Red } } object { T6a } object { T8 } object { T9a } object { T10a } } #declare Cox_18_2 = union { object { T3 } object { T5b pigment { Red } } object { T6a } object { T8 } object { T9a } object { T10a } } #declare Cox_18_3 = union { object { T5a} object { T6a } object { T8 } object { T9a } object { T10a } } #declare Cox_19_1 = union { object { T4 pigment { Red } } object { T5b pigment { Red } } object { T6a } object { T8 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_19_2 = union { object { T3 } object { T5b pigment { Red } } object { T6a } object { T8 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_19_3 = union { object { T5a } object { T6a } object { T8 } object { T9a } object { T10b pigment { Red } } object { T12 } } #declare Cox_20_1 = union { object { T4 pigment { Red } } object { T5b pigment { Red } } object { T6a } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_20_2 = union { object { T3 } object { T5b pigment { Red } } object { T6a } object { T9b pigment { Red } } object { T10a } object { T11 } } #declare Cox_20_3 = union { object { T5a } object { T6a } object { T9b pigment { Red } } object { T10a } object { T11 } } /*******************************************************************/ /*******************************************************************/ #declare I_IB_FaceFace = union { object {One_Third_Face rotate z * 0} object {One_Third_Face rotate z * 120} object {One_Third_Face rotate z * 240} translate <0, 0, Offset> } #declare Icosahedral_Face = object {I_IB_FaceFace} #declare Stellated_Icosahedron = union { object {Icosahedral_Face rotate x * 52.622632 rotate y * 0} object {Icosahedral_Face rotate x * 52.622632 rotate y * 72} object {Icosahedral_Face rotate x * 52.622632 rotate y * 144} object {Icosahedral_Face rotate x * 52.622632 rotate y * 216} object {Icosahedral_Face rotate x * 52.622632 rotate y * 288} object {Icosahedral_Face rotate z * 180 rotate x * 10.812317 rotate y * 0} object {Icosahedral_Face rotate z * 180 rotate x * 10.812317 rotate y * 72} object {Icosahedral_Face rotate z * 180 rotate x * 10.812317 rotate y * 144} object {Icosahedral_Face rotate z * 180 rotate x * 10.812317 rotate y * 216} object {Icosahedral_Face rotate z * 180 rotate x * 10.812317 rotate y * 288} object {Icosahedral_Face rotate x * -10.812317 rotate y * 36} object {Icosahedral_Face rotate x * -10.812317 rotate y * 108} object {Icosahedral_Face rotate x * -10.812317 rotate y * 180} object {Icosahedral_Face rotate x * -10.812317 rotate y * 252} object {Icosahedral_Face rotate x * -10.812317 rotate y * 324} object {Icosahedral_Face rotate z * 180 rotate x * -52.622632 rotate y * 36} object {Icosahedral_Face rotate z * 180 rotate x * -52.622632 rotate y * 108} object {Icosahedral_Face rotate z * 180 rotate x * -52.622632 rotate y * 180} object {Icosahedral_Face rotate z * 180 rotate x * -52.622632 rotate y * 252} object {Icosahedral_Face rotate z * 180 rotate x * -52.622632 rotate y * 324} } //Used to check facial planes. Uncomment the next line and comment out the "object {Stellated_Icosahedron" //object {Icosahedral_Face pigment {Red}} object {Stellated_Icosahedron rotate y * 1 pigment {Cyan} no_shadow }