File talk:MovableBridge thrust.gif
Jump to navigation
Jump to search
POVRay source file[edit]
To render the scene file below, two include files (vehicles.inc and puppet.inc) are required.
//movable bridge -- 5:thrust bridge (retractable bridge) //for POV-Ray3.6 (created by MacMegaPOV) //by Y tambe //You can use this source file under either GFDL or CC-by-sa (dual license) //You can use the images you render as free. #include "puppet.inc" #include "vehicles.inc" //camera camera { angle 15 location <0.0, 0.0, 40> look_at <0.0, 0.0, 0.0> rotate -20*x rotate -10*y } //lights light_source {//main light <0, 50,10> rgb <1, 1, 1> shadowless } light_source {//sub <0, 0,100> rgb <1, 1, 1>*.2 shadowless } //for animation #declare shipPos = (clock -0.35)*90; #declare counter = clock; #switch (clock) #range (0.0, 0.2) #declare counter = clock *5; #break #range (0.2, 0.4) #declare counter = 1; #break #range (0.4, 0.6) #declare counter = (0.6-clock)*5; #break #range (0.6, 1.0) #declare counter = 0; #break #default #declare counter = 0; #break #end //puppetPos #switch (clock) #range (0.0, 0.2) #declare puppetPos = 7-1.8*clock*(15/1.8); #declare walk = sin( (clock-0.2)*2*pi*8); #declare pAngle = array[6] {15*walk, -10*walk, 30*walk,-30*walk,-60*walk,60*walk}; #break #range (0.2, 0.55) #declare puppetPos = 4; #declare pAngle = array[6] {min(60, max(-50, atan2( (clock -0.35)*85,4)/pi*180 ) ),0,0,0,0,0} #break #range (0.55, 0.6) #declare puppetPos = 4; #declare pAngle = array[6] {0,0,0,0,0,0} #break #range (0.6, 1) #declare puppetPos = 4-2.5*(clock-0.6)*10; #declare walk = sin( (clock-0.6)*2*pi*8); #declare pAngle = array[6] {15*walk, -10*walk, 30*walk,-30*walk,-60*walk,60*walk}; #break #default #declare puppetPos = 9; #declare pAngle = array[6] {0,0,0,0,0,0} #break #end //#declare counter = 0; #declare bridgeTexture = texture{ pigment{color rgb <0.8,0.0,0.2>} finish{ambient 0.2 diffuse 0.8} } #declare roadTexture = texture{ pigment{color rgb 0.6} finish{ambient 0.2 diffuse 0.8} } //movable parts union{ union{ box{<-5.0,-0.05,-1>, <3, 0.15, 1>} box{<2.8,0.0,-.99>, <-2.8,0.35,-0.95>} box{<2.8,0.0,0.99>, <-2.8,0.35,0.95>} translate -4.6*counter*x } texture{bridgeTexture} } //static parts and road union{ box{<-2.25,-0.05,1.1>,<-999,-0.4,-1.1>} box{<-2.25,-0.05,1.1>,<-9,0.20,1.02>} box{<-2.25,-0.05,-1.1>,<-9,0.20,-1.02>} box{<2.25,-0.05,1.1>,<999,-0.4,-1.1>} box{<2.25,-0.05,1.1>,<9,0.20,1.02>} box{<3.05,0.15,1.1>,<999,-0.4,-1.1>} box{<2.25,-0.05,-1.1>,<9,0.20,-1.02>} cylinder{-0.2*y,-2*y,0.1 translate <2.5,0,0.8> } cylinder{-0.2*y,-2*y,0.1 translate <2.5,0,-0.8> } cylinder{-0.2*y,-2*y,0.1 translate <-2.5,0,0.8> } cylinder{-0.2*y,-2*y,0.1 translate <-2.5,0,-0.8> } texture{roadTexture} } difference{ //ground union{ prism{ linear_sweep cubic_spline 20, -20, 7, <2,1>,<2,-1>,<-2,-1>,<-2,1>,<2,1>,<2,-1>,<-2,-1> scale <2,2,2> rotate 90*x translate -2.5*y translate -8*x } prism{ linear_sweep cubic_spline 20, -20, 7, <2,1>,<2,-1>,<-2,-1>,<-2,1>,<2,1>,<2,-1>,<-2,-1> scale <2,2,2> rotate 90*x translate -2.5*y translate 8*x } texture{ pigment{color rgb <0.3,0.5,0.1>} finish{ambient 0.2 diffuse 0.8} normal{bozo 5 scale 0.2} } } box{<999,-0.4,1.1>,<-999,1,-1.1>} } object{Ship translate shipPos*z } object {puppet(pAngle[0], pAngle[1], pAngle[2], pAngle[3], pAngle[4], pAngle[5]) translate (1.85+0.15+0.5)*y scale 0.25 rotate -90*y translate <puppetPos,0,0> } plane{y,-1.5 texture{ pigment{color rgbt <.3,.6,1,0>} finish{ambient 0.5 diffuse 0.7} normal{ bozo 5 scale <0.2,0.2,1> } } }