3d/geometrie/buckyball/buckyball.pov

103 lines
2.0 KiB
POVRay

#include "colors.inc"
#declare r5 = 0.5 / sin (radians(36));
#declare rho5 = 0.5 * tan (radians(54));
#declare rho6 = 0.5 * tan (radians(60));
#declare v1 = 90 - degrees(asin(rho5/rho6));
#debug concat("v1 = ", str(v1, 0, 5), "\n")
#declare a = rho6 * cos(radians(v1)) + r5;
#declare b = 1;
#declare c = sqrt(a*a + b*b);
#declare d = rho6 * sin(radians(v1));
#declare v2 = 2 * degrees (asin(d/(c-r5)));
#debug concat("v2 = ", str(v2, 0, 5), "\n")
#declare e = sin(radians(72));
#debug concat("e = ", str(e, 0, 5), "\n")
#declare f = e * sin(radians(v1));
#debug concat("f = ", str(f, 0, 5), "\n")
#declare v3 = degrees (asin(f/rho6)) + v1;
#debug concat("v3 = ", str(v3, 0, 5), "\n")
#declare buckyball =
intersection {
plane {
<0, 1, 0> 1
pigment { color rgbf <1, 0, 0, 0.5> }
}
#declare i = 0;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <1, 1, 0, 0.5> }
rotate <0, 0, v1>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
#declare i = 36;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <0, 1, 0, 0.5> }
rotate <0, 0, v2>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
#declare i = 0;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <0, 1, 1, 0.5> }
rotate <0, 0, v3>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
#declare i = 36;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <0, 0, 1, 0.5> }
rotate <0, 0, 180 - v3>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
#declare i = 0;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <1, 0, 1, 0.5> }
rotate <0, 0, 180-v2>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
#declare i = 36;
#while (i < 360)
plane {
<0, 1, 0> 1
pigment { color rgbf <1, 0, 0, 0.5> }
rotate <0, 0, 180-v1>
rotate <0, i, 0>
}
#declare i = i + 72;
#end
plane {
<0, 1, 0> 1
pigment { color rgbf <1, 1, 0, 0.5> }
rotate <0, 0, 180>
}
}