Ferocene is a member of a class of organometallic compounds, in which heavy metal atoms, with disposable d-electrons, can interact with aromatic rings having mobile pi-electrons, to form stable compounds. From a graphical point of view, the question is one of complexity, given the number of atoms present.
/* molfc - generate a ferrocene molecule */
\index{molfc}
\begin{quote}
{\footnotesize
\begin{verbatim}
void molfc(s,r1,r2,r3) double s[][7], r1, r2, r3; {
molpr(&s[0][0],1.4,r3,1.3,30.0,30.0,30.0);
molpr(&s[5][0],1.0,r2,1.0,30.0,30.0,30.0);
s[10][0]=s[10][1]=s[10][2]=0.0; s[10][3]=r1;
s[10][4]=80.0; s[10][5]=-30.0; s[10][6]=100.0;
molps(&s[11][0],1.0,r2,-1.0,30.0,30.0,30.0);
molps(&s[16][0],1.4,r3,-1.3,30.0,30.0,30.0);
}
/* molpr - generate a pentagonal ring */
void molpr(s,r,rr,h,a,b,c) double s[][7], r, rr, h, a, b, c; {
int i;
double ph;
for (i=0, ph=0.0; i<5; i++,ph+=(72.0*3.14159)/180.0) {
s[i][0]=r*cos(ph); s[i][1]=h; s[i][2]=r*sin(ph);
s[i][3]=rr;
s[i][4]=a; s[i][5]=b; s[i][6]=c;}
}
/* molps - generate a staggered pentagonal ring */
void molps(s,r,rr,h,a,b,c) double s[][7], r, rr, h, a, b, c; {
int i;
double ph;
for (i=0, ph=(36.0*3.14159)/180.0; i<5; i++,ph+=(72.0*3.14159)/180.0) {
s[i][0]=r*cos(ph); s[i][1]=h; s[i][2]=r*sin(ph);
s[i][3]=rr;
s[i][4]=a; s[i][5]=b; s[i][6]=c;}
}