#version 3.5; #include "colors.inc" #include "colors.inc" global_settings { assumed_gamma 1.0 ambient_light rgb<1, 1, 1> } //meters and degrees! #declare rake=35; #declare downtubelength=.14; #declare clearance=.125; #declare frameheight=.741; #declare framewidth=.271; #declare frametube= .02; #declare fbsetback=.185; #declare fbasel=.602; #declare framebaseplatesetback=.417; #declare visuallength=1.67; //extend top tube to back and intersect with frame base... #declare middletubesetback=.509; //distance back from front of frame of top of middle tube #declare tff_lx=.09; //horizontal length of top frame "fork" #declare rwradius=.271; //rear wheel radius #declare ct_top=-middletubesetback*x+frameheight*(1-middletubesetback/visuallength)*y; //location of top of middle tube #declare tff_x=-tff_lx-middletubesetback; #declare tff_y=frameheight/visuallength*(visuallength+tff_x); #declare tfback_y=frameheight/visuallength*(visuallength-fbsetback-fbasel); #declare tfback_x=-fbsetback-fbasel; #declare raxel_y=rwradius-clearance; #declare raxel_x=tfback_x-rwradius; //frame #declare frame = union{ cylinder{.2*downtubelength*y,-.8*downtubelength*y,frametube*2 rotate z*rake translate y*frameheight} //fork tube cylinder{y*frameheight,-x*fbsetback-z*framewidth/2-y*frametube,frametube} //tubes droping fromm fork tube cylinder{y*frameheight,-x*fbsetback+z*framewidth/2-y*frametube,frametube} cylinder{0,-x*fbasel,frametube translate -x*fbsetback+z*framewidth/2} //base tubes cylinder{0,-x*fbasel,frametube translate -x*fbsetback-z*framewidth/2} box{y*frametube/2-z*framewidth/2,-y*frametube/2+z*framewidth/2-2*frametube*x //plate at front/base of frame translate -x*fbsetback} box{y*frametube/2-z*framewidth/2,-y*frametube/2+z*framewidth/2-2*frametube*x //plate at middle/base of frame translate -x*(fbsetback+framebaseplatesetback-frametube/2)} cylinder{ y*frameheight,ct_top,frametube} //top tube cylinder{ -x*(fbsetback+framebaseplatesetback),ct_top,frametube} //middle rising tube cylinder{ tff_x*x+tff_y*y+z*framewidth/2,ct_top,frametube} //frame top fork branch cylinder{ tff_x*x+tff_y*y-z*framewidth/2,ct_top,frametube} cylinder{ tff_x*x+tff_y*y-z*framewidth/2, +tfback_x*x+tfback_y*y-z*framewidth/2,frametube} //rear-top tubes cylinder{ tff_x*x+tff_y*y+z*framewidth/2, +tfback_x*x+tfback_y*y+z*framewidth/2,frametube} //rear axel mount box{tfback_x*x+tfback_y*y-frametube/2*z,(tfback_x+2*frametube)*x+frametube/2*z translate -z*framewidth/2} box{tfback_x*x+tfback_y*y-frametube/2*z,(tfback_x+2*frametube)*x+frametube/2*z translate +z*framewidth/2} cylinder{ tfback_x*x+tfback_y*y+z*framewidth/2,raxel_x*x+raxel_y*y+z*framewidth/2,frametube} cylinder{ tfback_x*x+z*framewidth/2,raxel_x*x+raxel_y*y+z*framewidth/2,frametube} cylinder{ tfback_x*x+tfback_y*y-z*framewidth/2,raxel_x*x+raxel_y*y-z*framewidth/2,frametube} cylinder{ tfback_x*x-z*framewidth/2,raxel_x*x+raxel_y*y-z*framewidth/2,frametube} } #declare rtire = torus{rwradius,.075 rotate x*90 translate raxel_y*y+raxel_x*x} background {color rgb <1,1,1> } #declare csc=90; camera { location vrotate(<00, 0, -4.0>*csc,y*00) look_at <-.4, 0.0, 0.0> angle 30/csc } #declare fin=superellipsoid { <.3,.3> } #declare fin2=intersection{ cylinder{-.7*y,.7*y,1.0} box{-1.1,1.1} } #declare fin=fin2; #declare cylbasew=.7/10.8; //half-widths!!! #declare cyltopw=1.6*cylbasew; //full height!!! #declare cylheight=1.8*cyltopw; #declare cylcapheight=.5*cylbasew; #declare nfins=16; #declare finheight=cylheight/nfins/6; #declare ecorerad=1.1/10.8; #declare cyl=union{ #declare fcount=1; #while(fcount translate (fcount+.5)*cylheight/nfins*y} #declare fcount=fcount+1; #end cone{0*x,cylbasew*.6,cylheight*y,cyltopw*.7} superellipsoid { <.5,.5> scale cyltopw*(x+z)+cylcapheight*y translate y*cylheight } texture{T_Chrome_5C } } #declare eng=union{ cylinder{-cylbasew*z,cylbasew*z,ecorerad} object{cyl translate y*.9*ecorerad rotate z*22.5} object{cyl translate y*.9*ecorerad rotate -z*22.5} superellipsoid { <.5,.5> scale 2*ecorerad*x+.7*cylbasew*z+ecorerad*y translate -x*.25*ecorerad} texture{T_Chrome_5C } translate y*(ecorerad+frametube)-x*(fbsetback+1.3*ecorerad)} light_source { <0, 4, -20> } union{ object{frame} object{eng} object{tire} rotate -x*20 }