// // screwdrivers.pov // // Written by Ville Saari // // Created: 26-Nov-94 // Updated: 29-Nov-94 // // POV-Ray scene description for two screwdrivers on wooden table // #include "colors.inc" #include "shapes.inc" #include "textures.inc" declare o=<0, 0, 0> default { texture { pigment { White } finish { ambient .3 diffuse .7 } } } declare Transparent_plastic=texture { finish { specular .8 roughness .025 refraction 1 ior 1.4 reflection .2 } } declare Steel=texture { pigment { Gray30 } finish { specular 1 roughness .005 reflection .5 } } declare Screwdriver_handle=intersection { merge { cylinder { -1.5*y, 6*y, 1.2 } cone {-1.5*y, 1.2, -1.7*y, .75 } sphere { o, 1 scale <1.2, .5, 1.2> translate 6*y } } object { Hyperboloid_Y scale .9 } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z rotate 60*y } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z rotate 120*y } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z rotate 180*y } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z rotate 240*y } cylinder { -1.7*y, 6.5*y, .5 inverse translate -1.5*z rotate 300*y } bounded_by { box { <-1.2, -1.7, -1.15>, <1.2, 6.5, 1.15> } } } declare Screwdriver_stem = union { union { intersection { cylinder { -y, 2.3*y, .3 } box { < .22, -.5, -1>, < 1, 1.5, 1> inverse } box { <-.22, -.5, -1>, <-1, 1.5, 1> inverse } } box { <-.35, -.5, -.05>, <.35, 1.5, .05> } box { <-.5, -.35, -.05>, <.5, 1.35, .05> } cylinder { <-.35, -.35, -.05>, <-.35, -.35, .05>, .15 } cylinder { < .35, -.35, -.05>, < .35, -.35, .05>, .15 } cylinder { <-.35, 1.35, -.05>, <-.35, 1.35, .05>, .15 } cylinder { < .35, 1.35, -.05>, < .35, 1.35, .05>, .15 } bounded_by { box { <-.5, -1, -.3>, <.5, 2.3, .3> } } } cylinder { -y, -10.5*y, .3 } texture { Steel } } declare Screwdriver_tip=intersection { plane { y, -10.5 } object { Hyperboloid_Y scale <.3, 1, .3> translate -10.5*y } plane { -y, 12.5 } plane { < 7, -1, 0>, 0 translate -14.7*y } plane { <-7, -1, 0>, 0 translate -14.7*y } plane { < 0, -1, 8>, 0 translate -12.9*y } plane { < 0, -1, -8>, 0 translate -12.9*y } bounded_by { box { <-.6, -12.5, -.3>, <.6, -10.5, .3> } } texture { Steel } } declare Phillips_tip=intersection { union { cylinder { -10.5*y, -11.5*y, .3 } cone { -11.5*y, .3, -11.9*y, .07 } } union { intersection { cylinder { <-1, -11.9, -3.94>, <1, -11.9, -3.94>, 3.9 inverse } cylinder { <-1, -11.9, 3.94>, <1, -11.9, 3.94>, 3.9 inverse } } intersection { cylinder { <-3.94, -11.9, -1>, <-3.94, -11.9, 1>, 3.9 inverse } cylinder { < 3.94, -11.9, -1>, < 3.94, -11.9, 1>, 3.9 inverse } } } bounded_by { box { <-.3, -11.9, -.3>, <.3, -10.5, .3> } } texture { Steel } } declare Screwdriver=union { object { Screwdriver_handle texture { Transparent_plastic pigment { rgbf <1, .1, 0, .9> quick_color rgb <1, .1, 0> } } } object { Screwdriver_stem } object { Screwdriver_tip } bounded_by { box { <-1.2, -12.5, -1.15>, <1.2, 6.5, 1.15> } } translate 2.7*y } declare Phillips_screwdriver=union { object { Screwdriver_handle texture { Transparent_plastic pigment { rgbf <1, .8, 0, .9> quick_color rgb <1, .8, 0> } } } object { Screwdriver_stem } object { Phillips_tip } bounded_by { box { <-1.2, -11.9, -1.15>, <1.2, 6.5, 1.15> } } translate 2.7*y } union { object { Screwdriver rotate -90*z rotate -30*x translate 1.15*y} object { Phillips_screwdriver rotate -90*z rotate -30*x translate -8.7*x rotate -2.8625*z translate 12*x rotate 65*y translate <-2, 1.15, 0> } rotate 45*y translate <10, 0, 11> } union { union { cylinder { <.2, -.2, .2>, <.2, -.2, 10>, .2 } cylinder { <.2, -2.3, .2>, <.2, -2.3, 10>, .2 } cylinder { <.2, -.2, .2>, <.2, -2.3, .2>, .2 } box { <0, -2.3, .2>, <.4, -.2, 10> } sphere { <.2, -.2, .2>, .2 } sphere { <.2, -2.3, .2>, .2 } bounded_by { box { <0, -2.5, 0>, <.4, 0, 10> } } } union { cylinder { <.2, -.2, .2>, <100, -.2, .2>, .2 } cylinder { <.2, -2.3, .2>, <100, -2.3, .2>, .2 } box { <.2, -2.3, 0>, <100, -.2, .4> } bounded_by { box { <0, -2.5, 0>, <100, 0, .4> } } } box { <.2, -2.5, .2>, <100, 0, 10> } texture { pigment { DMFDarkOak rotate 90*y translate <0, 5, 5> rotate <0, -3, 4> quick_color rgb <.6, .3, .18> } finish { specular .5 roughness .08 reflection .25 } } } union { union { cylinder { <.2, -.2, 0>, <.2, -.2, 10>, .2 } cylinder { <.2, -2.3, 0>, <.2, -2.3, 10>, .2 } box { <0, -2.3, 0>, <.4, -.2, 10> } bounded_by { box { <0, -2.5, 0>, <.4, 0, 10> } } } box { <.2, -2.5, 0>, <100, 0, 10> } texture { pigment { DMFDarkOak rotate 90*y translate <50, -3, 5> rotate <0, -6, -2> quick_color rgb <2, .15, .09> } finish { specular .5 roughness .08 reflection .25 } } translate 10*z } box { <.2, -2.5, 0>, <100, 0, 10> texture { pigment { DMFDarkOak rotate 90*y translate <100, 7, 5> rotate <0, 5, 2> quick_color rgb <.6, .3, .18> } finish { specular .5 roughness .08 reflection .25 } } translate 20*z } box { <.2, -2.5, 0>, <100, 0, 10> texture { pigment { DMFDarkOak rotate 90*y translate <150, -5, 5> rotate <0, 3, 0> quick_color rgb <.3, .15, .09> } finish { specular .5 roughness .08 reflection .25 } } translate 30*z } camera { location <-30, 20, -10> direction 2.5*z look_at <10, -5, 11> } light_source { <20, 20, -20> color White }