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;} }