CCL Home Page
Up Directory CCL buckyball
/*
   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
samples 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
Modified: Wed Dec 11 17:00:00 1996 GMT
Page accessed 5698 times since Sat Apr 17 21:59:14 1999 GMT