/* buckminsterfullerene or buckyballs as C60 is better known This description file - by Roger Attrill Jan 1992 The buckyball consists of 60 vertices - 12 pentagons and 12 hexagons connected together so that no two pentagons have a common edge. To save a lot of nasty calculation the radius of the buckyball was found by an iterative process using the fact that 4 hexes (between two opposite edges), 4 pents (between one vertex and the opposite edge), and 2 hex edges must fit within the equator of the encompassing sphere. The edge size length was taken to be 1 and the radius of the sphere intersecting all vertices was found to be 2.58458833. From this the angle which each shape subtends at the core was found enabling the coords of one hexagon and an adjacent pentagon to be found - the rest is a doddle, rayshade does all the rotation and copying work. Note that defining two pentagon edges along with the five hexagon edges ensures that all pentagons will automatically be created as the hexagons get rotated and copied. */ maxdepth 3 sample 1 eyep 0 -7.6 0.0001 lookp 0 0 0 up 0 0 1 fov 45 screen 800 800 background 0 0 0 surface c ambient .1 .1 .1 diffuse .9 .6 .1 specular .9 .6 .1 specpow 30 surface w ambient .1 .1 .1 diffuse .9 .1 .1 specular .9 .1 .1 specpow 30 surface r ambient .1 .1 .1 diffuse .9 .9 .9 specular .9 .9 .9 specpow 30 name hexcyls /* five edges of one hexagon - sixth edge is common to two hexes so leave that to the next level */ list cylinder r .1 0 0.5 2.58458833 0.866025404 0.866025404 2.251427309 cylinder w .1 0.866025404 0.866025404 2.251427309 1.732050808 0.5 1.91835785 cylinder r .1 1.732050808 0.5 1.91835785 1.732050808 -0.5 1.91835785 cylinder w .1 1.732050808 -0.5 1.91835785 0.866025404 -0.866025404 2.251427309 cylinder r .1 0.866025404 -0.866025404 2.251427309 0 -0.5 2.58458833 end name missing_pent_parts /* two pentagon edges */ list cylinder r .1 0.8090169942 0.262865556 2.454294763 0.5 -0.6881909601 2.454294763 cylinder r .1 -0.8090169942 0.262865556 2.454294763 -0.5 -0.6881909601 2.454294763 end name hexpart /* five vertices of the hexagon */ list sphere c 0.25 0 0.5 2.58458833 sphere c 0.25 0.866025404 0.866025404 2.251427309 sphere c 0.25 1.732050808 0.5 1.91835785 sphere c 0.25 1.732050808 -0.5 1.91835785 sphere c 0.25 0.866025404 -0.866025404 2.251427309 object hexcyls object missing_pent_parts rotate 1 0 0 29.6514174 end name hexpair /* copy rotate hexagon about z for connected hexagon pair and fill in the common edge to the two hexes */ list object hexpart cylinder w .1 0 0.5 2.58458833 0 -0.5 2.58458833 /* common edge to hex pair */ object hexpart rotate 0 0 1 180 end name hexes_on_a_ring /* copy rotate hex pair about y for opposite pair */ list object hexpair object hexpair rotate 0 1 0 180 end name buckyball /* copy hex rings along each axis for 12 hexes */ list object hexes_on_a_ring object hexes_on_a_ring rotate 0 0 1 90 rotate 1 0 0 90 object hexes_on_a_ring rotate 0 0 1 90 rotate 0 1 0 90 end /* rotate to look at a pentagon ege flat on */ object buckyball rotate 0 0 1 -29.6514174 light .9 point 20 -30 10 light .9 point -20 -30 10