/*
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
|