File talk:Wankel Cycle anim en.gif
Jump to navigation
Jump to search
POV-Ray source file[edit]
//WankelCycleAnimation.pov for POV-Ray3.6 //by Y tambe //You can use this source file as public-domain //Redering settings; width : height = 3 : 4, frames for animation; 1-36 camera { angle 5 right <-1,0,0> up <0,-1.33,0> location <0.0, 0.0, 220> look_at <0.0, 0.0, 0.0> rotate -90*z translate -0.5*y } light_source { <0, 0, 1000> rgb <1, 1, 1> shadowless } //for internal gear #declare gear16 = difference{ cylinder{0.02*z, -0.05*z, 2} union{ #declare tick = 16; #declare counter = 0; #while(tick > counter) box{<0.25, pi/16, 1>, <-0.25, -pi/16, -1> translate 2*x rotate counter*(360/tick)*z } #declare counter = counter+1; #end } texture{ pigment{color rgb <.3, .1, .1>} finish{ambient 1} } } //for external gear #declare gear24 = difference{ cylinder{0.25*z, -0.25*z, 3} union{ #declare tick = 24; #declare counter = 0; #while(tick > counter) box{<0.25, pi/16, 1>, <-0.25, -pi/16, -1> translate 3*x rotate counter*(360/tick)*z } #declare counter = counter+1; #end } } //define trochoid #declare trochoid = array[361]; #declare a = 0; #while (a<361) #declare trochoid[a] = <4*cos(radians(a))*(cos(radians(a))*cos(radians(a))+1), 4*sin(radians(a))*sin(radians(a))*sin(radians(a))-10*sin(radians(a)),0>; #declare a=a+1; #end //roter base structure #declare roterbase= intersection{ cylinder{z,-z,16 translate 11.2*x rotate 180*z} cylinder{z,-z,16 translate 11.2*x rotate 60*z} cylinder{z,-z,16 translate 11.2*x rotate -60*z} cylinder{0.01*z, -0.02*z,8} } //roter #declare roter= difference{ union{ object{roterbase scale <0.98,0.98,1> texture{ pigment{color rgb <0, 0.55, .55>} finish{ambient 1} } } object{roterbase scale <1,1,0.99> texture{ pigment{color rgb 0} finish{ambient 1} } } cylinder{0.019*z, -0.05*z, 3.7 texture{ pigment{color rgb 0} finish{ambient 0.8} } } cylinder{0.02*z, -0.05*z, 3.65 texture{ pigment{color rgb <.4, .4, .4>} finish{ambient 1} } } } object{gear24 texture{ pigment{color rgb <.5, 0.5, .0>} finish{ambient 1} } translate 0*x } } //trochoids #declare border = 1.00; #declare a=0; #declare orbit=mesh{ #while (a < 360) triangle{trochoid[a], trochoid[a+1]+border*vnormalize(trochoid[a+1]), trochoid[a]+border*vnormalize(trochoid[a])} triangle{trochoid[a], trochoid[a+1],trochoid[a+1]+border*vnormalize(trochoid[a+1])} #declare a =a +1; #end } #declare border1 = 0.15; #declare border2 = 0.85; #declare a=0; #declare orbitN=mesh{ #while (a < 360) triangle{trochoid[a]+border1*vnormalize(trochoid[a]), trochoid[a+1]+border2*vnormalize(trochoid[a+1]), trochoid[a]+border2*vnormalize(trochoid[a])} triangle{trochoid[a]+border1*vnormalize(trochoid[a]), trochoid[a+1]+border1*vnormalize(trochoid[a+1]),trochoid[a+1]+border2*vnormalize(trochoid[a+1])} #declare a =a +1; #end } #declare a=0; #declare orbit2=mesh{ #while (a < 360) triangle{0,trochoid[a], trochoid[a+1]} #declare a =a +1; #end } //plug #declare plug= union{ sphere{0,0.2 texture{ pigment { color rgb 0 } finish{ambient 1} } } box{-1,1 scale <0.25,0.5,1> translate 0.5*y texture{ pigment {color rgb <0,0,0>} finish{ambient 1} } } box{-1,1 scale <0.15,0.4,1.1> translate 0.5*y texture{ pigment {color rgb <0.5,0.5,0.5>} finish{ambient 1} } } box{-1,1 scale <0.4,0.1,1.1> translate 1*y texture{ pigment {color rgb <0,0,0>} finish{ambient 1} } } box{-1,1 scale <0.35,0.7,1> translate 1.8*y texture{ pigment {color rgb <0,0,0>} finish{ambient 1} } } box{-1,1 scale <0.25,0.65,1.1> translate 1.8*y texture{ pigment {color rgb <1,1,1>} finish{ambient 1} } } box{-1,1 scale <0.25,0.5,1> translate 2.4*y texture{ pigment {color rgb <0,0,0>} finish{ambient 1} } } translate 0.2*y scale <1,1, 0.5> } //spark #declare spark= difference{ mesh{ #declare a=0; #while (a<360) triangle { vaxis_rotate(x,z,a), vaxis_rotate(-x,z,a), vaxis_rotate(5*y,z,a) } #declare a=a+24; #end } plane{-y,0} texture{ pigment{ color rgbf <1,1,0,0.5> } finish{ambient 1} } scale 0.2 } //write scene #declare aa = clock*360; //background plane{ z,-0.3 texture{ pigment{color rgb 1 } finish{ambient 1} } } //internal gear difference{ object{gear16} cylinder{z, -z, 1.2 texture{ pigment{color rgb <.3, .1, .1>*.7} finish{ambient 1} } } } //shaft cylinder{ 0.02*z, -0.05*z, 1.1 texture{ pigment{ radial color_map{ [0.0 color rgb <0.45,0.45,0.45>] [1.0 color rgb <0.5,0.5,0.5>] } rotate 90*x } finish{ambient 1} } rotate 3*aa*z } //text for shaft text{ ttf "cyrvetic.ttf", "B",0.5,0 rotate 180*y rotate -90*z translate <-.5, -.25, 0> scale 1.2 translate vaxis_rotate(<-0.8, 0, 0.1>,z,aa*3) texture{ pigment{color rgb <0.1,0.1,0.1>} finish{ambient 1} } } //roter object{roter translate -1.0*x translate 1.0*x rotate -aa*2*z translate -1.0*x rotate aa*3*z } //text for roter #declare pos = <-6.5,0,0.1>; #declare pos = pos + 1*x; #declare pos = vaxis_rotate(pos,z,-aa*2); #declare pos = pos- 1*x; #declare pos = vaxis_rotate(pos,z,aa*3); text{ ttf "cyrvetic.ttf", "A",0.5,0 rotate 180*y rotate -90*z translate <-.5, -.25, 0> scale 1.2 translate pos texture{ pigment{color rgb <0.1,0.1,0.1>} finish{ambient 1} } } //engine room union{ difference{ union{ object{orbitN translate 0.002*z texture{ pigment{color rgb <.55, .55, .3>} finish{ambient 1} } } object{orbit //rotate 90*z texture{ pigment{color rgb 0} finish{ambient 1} } } } box{ <trochoid[40].x, -10, -1>, < trochoid[50].x-0.15, 0, 1>} box{ <trochoid[130].x, -10, -1>, <trochoid[120].x+0.15,0, 1>} cylinder{z*1, -z*1,0.5 scale <1,0.5,1> translate trochoid[250]} cylinder{z*1, -z*1,0.5 scale <1,0.5,1> translate trochoid[290]} } box{ trochoid[40], <trochoid[40].x+1, trochoid[50].y-3.0, 0.001> translate -0.15*x texture{ pigment{color rgb 0} finish{ambient 1} } } box{ trochoid[40], <trochoid[40].x+1-0.3, trochoid[50].y-2.8, 0.002> translate -0.1*y texture{ pigment{color rgb <.55,.55,.3>} finish{ambient 1} } } box{ <trochoid[50].x, trochoid[50].y, 0> , <trochoid[50].x-0.15,trochoid[50].y-3.0, 0.001> texture{ pigment{color rgb 0} finish{ambient 1} } } box{ <trochoid[50].x, trochoid[50].y-0.5, 0> , <trochoid[50].x-1,trochoid[50].y-3.0, 0.001> texture{ pigment{color rgb 0} finish{ambient 1} } } box{ <trochoid[50].x-0.15, trochoid[50].y-0.5, 0> , <trochoid[50].x-1+0.15,trochoid[50].y-3.0+0.15, 0.002> texture{ pigment{color rgb <.55,.55,.3>} finish{ambient 1} } } box{ trochoid[130], trochoid[130]+<-1, -3.0, 0.001> translate 0.15*x texture{ pigment{color rgb 0} finish{ambient 1} } } box{ trochoid[130], trochoid[130]+<-1+0.3, -2.8, 0.002> translate -0.1*y texture{ pigment{color rgb <.55,.55,.3>} finish{ambient 1} } } box{ <trochoid[120].x, trochoid[120].y, 0> , <trochoid[120].x+0.15,trochoid[130].y-3.0, 0.001> texture{ pigment{color rgb 0} finish{ambient 1} } } box{ <trochoid[120].x, trochoid[120].y-0.5, 0> , <trochoid[120].x+1,trochoid[130].y-3.0, 0.001> texture{ pigment{color rgb 0} finish{ambient 1} } } box{ <trochoid[120].x+0.15, trochoid[120].y-0.5, 0> , <trochoid[120].x+1-0.15,trochoid[130].y-3.0+0.15, 0.002> texture{ pigment{color rgb <.55,.55,.3>} finish{ambient 1} } } difference{ cylinder{z*0.001, -z*0.001,0.5 scale <1,0.5,1>} cylinder{z*2, -z*2,0.25 scale <1,0.5,1>} plane {y,0} translate trochoid[250] texture{ pigment{color rgb 0} finish{ambient 1} } } difference{ cylinder{z*0.001, -z*0.001,0.5 scale <1,0.5,1>} cylinder{z*2, -z*2,0.25 scale <1,0.5,1>} plane {y,0} translate trochoid[290] texture{ pigment{color rgb 0} finish{ambient 1} } } object{plug translate trochoid[250] } object{plug translate trochoid[290] } } #switch(frame_number) #case (1) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-6/8*<0.1,0.1,0.1>} ; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>} ; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (2) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>} ; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-5/8*<0.1,0.1,0.1>} ; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>} ; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (3) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-1/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-4/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (4) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-2/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-3/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (5) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-3/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-2/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (6) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-4/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-1/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (7) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-5/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (8) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-6/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (9) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>-7/8*<0.15,0.15,0>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb <0,0,1>; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (10) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-8/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = true; #break #case (11) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-8/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = true; #break #case (12) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-7/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (13) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-6/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (14) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-5/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (15) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-4/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-1/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (16) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-3/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-2/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (17) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-2/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-3/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (18) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>-1/8*<0,0.15,0.15>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-4/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb <1,0,0>; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (19) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-5/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (20) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-6/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (21) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-7/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (22) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-8/8*<0.1,0.1,0.1>};//burst #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = true; #break #case (23) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-8/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = true; #break #case (24) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-7/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (25) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-6/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (26) #declare plane1Pigment = pigment{color rgb <1,0.55,0.55>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-5/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (27) #declare plane1Pigment = pigment{color rgb <0.60-0.05*1/5,0.55,0.55+0.05*1/5>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-1/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-4/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (28) #declare plane1Pigment = pigment{color rgb <0.60-0.05*2/5,0.55,0.55+0.05*2/5>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-2/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-3/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,0.55>; #declare exhaustColor = color rgb <1,0.55,0.55>; #declare intakeTxtColor = color rgb 0.5; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb <1,0,0>; #declare sparkON = false; #break #case (29) #declare plane1Pigment = pigment{color rgb <0.60-0.05*3/5,0.55,0.55+0.05*3/5>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-3/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-2/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (30) #declare plane1Pigment = pigment{color rgb <0.60-0.05*4/5,0.55,0.55+0.05*4/5>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-4/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>-1/8*<0.1,0.1,0.1>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (31) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-5/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (32) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-6/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (33) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-7/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #case (34) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-8/8*<0.1,0.1,0.1>};//burst #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = true; #break #case (35) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-8/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = true; #break #case (36) #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-7/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0,0,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #break #else #declare plane1Pigment = pigment{color rgb <0.55,0.55,1>}; #declare plane2Pigment = pigment{color rgb <0.55,0.55,0.55>-6/8*<0.1,0.1,0.1>}; #declare plane3Pigment = pigment{color rgb <0.55,0.55,0.55>}; #declare intakeColor = color rgb <0.55,0.55,1>; #declare exhaustColor = color rgb <0.55,0.55,0.55>; #declare intakeTxtColor = color rgb <0.2,0.2,1>; #declare compressTxtColor = color rgb 0.5; #declare ignitionTxtColor = color rgb 0.5; #declare exhaustTxtColor = color rgb 0.5; #declare sparkON = false; #end //matters with case //plane1 difference{ object{orbit2 } plane{x,0 translate 2.5*x translate 1.0*x rotate -aa*2*z translate -1.0*x rotate aa*3*z } texture{ pigment{ plane1Pigment } finish{ambient 1} } translate 0.005*z } //plane2 difference{ object{orbit2 } plane{x,0 translate 2.5*x translate 1.0*x rotate -(aa+120)*2*z translate -1.0*x rotate (aa+120)*3*z } texture{ pigment{ plane2Pigment } finish{ambient 1} } translate 0.005*z } //plane3 difference{ object{orbit2 } plane{x,0 translate 2.5*x translate 1.0*x rotate -(aa+240)*2*z translate -1.0*x rotate (aa+240)*3*z } texture{ pigment{ plane3Pigment } finish{ambient 1} } translate 0.0005*z } box{ trochoid[40], <trochoid[50].x, trochoid[50].y-0.5, 0.0004> texture{ pigment{ color intakeColor } finish{ambient 1} } } box{ <trochoid[40].x-0.2, trochoid[40].y ,0>, <trochoid[50].x+0.15, trochoid[40].y-10, 0.0003> texture{ pigment{ planar color_map{ [0.0 color rgb <0.8,0.8,1>] [0.5 color rgb intakeColor] } frequency 40 scale 40 } finish{ambient 1} } translate mod(frame_number,3)*1/3*y } box{ trochoid[130], <trochoid[120].x, trochoid[120].y-0.5, 0.0004> texture{ pigment{ color rgb exhaustColor } finish{ambient 1} } } box{ <trochoid[120].x-0.05, trochoid[120].y ,0>, <trochoid[130].x+0.2, trochoid[130].y-10, 0.0003> texture{ pigment{ planar color_map{ [0.5 color exhaustColor] [1.0 color rgb <1,0.8,0.8>] } frequency 40 scale 40 } finish{ambient 1} } translate -mod(frame_number,3)*1/3*y } #if(sparkON) object{spark translate trochoid[250]+<0,0.2,0.1>} object{spark translate trochoid[290]+<0,0.2,0.1>} #end //for English annotation #declare intakeText0 = text{ ttf "cyrvetic.ttf", "INTAKE", //en 0.5,0 rotate -90*z rotate 180*x scale <1.3,1.3,1> translate 0.11*z translate <7.5,-9.5,0> } #declare intakeText=union{ object{intakeText0 translate <1,0,0>*0.05} object{intakeText0 translate <0,1,0>*0.05} object{intakeText0 translate <1,1,0>*0.05} } #declare compressText0 =text{ ttf "cyrvetic.ttf", "COMPRESSION", //en 0.5,0 rotate -90*z rotate 180*x scale <1.3,1.1,1> translate 0.11*z translate <9.2,1,0> } #declare compressText=union{ object{compressText0 translate <1,0,0>*0.05} object{compressText0 translate <0,1,0>*0.05} object{compressText0 translate <1,1,0>*0.05} } #declare ignitionText0 =text{ ttf "cyrvetic.ttf", "IGNITION", //en 0.5,0 rotate -90*z rotate 180*x scale <1.3,1.2,1> translate 0.11*z translate <-8.9,4,0> } #declare ignitionText=union{ object{ignitionText0 translate <1,0,0>*0.05} object{ignitionText0 translate <0,1,0>*0.05} object{ignitionText0 translate <1,1,0>*0.05} } #declare exhaustText0 =text{ ttf "cyrvetic.ttf", "EXHAUST", //en 0.5,0 rotate -90*z rotate 180*x scale <1.3,1.1,1> translate 0.11*z translate <-8.2,-9.7,0> } #declare exhaustText=union{ object{exhaustText0 translate <1,0,0>*0.05} object{exhaustText0 translate <0,1,0>*0.05} object{exhaustText0 translate <1,1,0>*0.05} } /* //for japanese annotation; not avaible without image files #declare intakeText = height_field{ png "intake_ja.png" water_level 0.1 rotate 90*x rotate 90*z scale <4,4,0.1> translate <6,-10,0> } #declare compressText = height_field{ png "compress_ja.png" water_level 0.1 rotate 90*x rotate 90*z scale <4,4,0.1> translate <7,5,0> } #declare ignitionText = height_field{ png "ignition_ja.png" water_level 0.1 rotate 90*x rotate 90*z scale <4,4,0.1> translate <-9,5,0> } #declare exhaustText = height_field{ png "exhaust_ja.png" water_level 0.1 rotate 90*x rotate 90*z scale <4,4,0.1> translate <-7.2,-10,0> } */ /* //for german annotation not avaible without image files #declare intakeText = height_field{ png "intake_de.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <7.5,-10.5,0> } #declare compressText = height_field{ png "compress_de.png" water_level 0.1 rotate 90*x rotate 90*z scale <8,9.6,0.1> translate <9,-0.3,0> } #declare ignitionText = height_field{ png "ignition_de.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <-10,2.2,0> } #declare exhaustText = height_field{ png "exhaust_de.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <-9.2,-10.2,0> } //for english annotation_2 not avaible without image files #declare intakeText = height_field{ png "intake_en.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <7,-11,0> } #declare compressText = height_field{ png "compress_en.png" water_level 0.1 rotate 90*x rotate 90*z scale <8,9.6,0.1> translate <9,-0.3,0> } #declare ignitionText = height_field{ png "ignition_en.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <-10,2.2,0> } #declare exhaustText = height_field{ png "exhaust_en.png" water_level 0.1 rotate 90*x rotate 90*z scale <7,7,0.1> translate <-9.2,-10.2,0> } */ object{intakeText texture{pigment{color intakeTxtColor} finish{ambient 1} } } object{compressText texture{pigment{color rgb compressTxtColor} finish{ambient 1} } } object{ignitionText texture{pigment{color rgb ignitionTxtColor} finish{ambient 1} } } object{exhaustText texture{pigment{color rgb exhaustTxtColor} finish{ambient 1} } }