File talk:MovableBridge curl.gif
ナビゲーションに移動
検索に移動
POVRay source file[編集]
To render the scene file below, two include files (vehicles.inc and puppet.inc) are required.
//movable bridge -- 7:curling 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 = 1; #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 #declare bridgePart = union{ box{<0.94,-0.05,-1>, <0, 0.15, 1>} prism{linear_sweep linear_spline 0,0.05, 9, <0, 0>, <0.7*sin( (180-360/8)/2/180*pi), 0.7*cos( (180-360/8)/2/180*pi)>, <0.7*sin( (180-360/8)/2/180*pi), 1-0.7*cos( (180-360/8)/2/180*pi)>, <0,1>, <0, 1-0.2>, <0.5*sin( (180-360/8)/2/180*pi), 1-0.2-0.5*cos( (180-360/8)/2/180*pi)>, <0.5*sin( (180-360/8)/2/180*pi), 0.2+0.5*cos( (180-360/8)/2/180*pi)>, <0, 0.2>, <0,0> rotate <-90,0,90> translate 0.5*x scale <0.8,0.8,1> translate <0.47,0.15,-0.85> } prism{linear_sweep linear_spline 0,-0.05, 9, <0, 0>, <0.7*sin( (180-360/8)/2/180*pi), 0.7*cos( (180-360/8)/2/180*pi)>, <0.7*sin( (180-360/8)/2/180*pi), 1-0.7*cos( (180-360/8)/2/180*pi)>, <0,1>, <0, 1-0.2>, <0.5*sin( (180-360/8)/2/180*pi), 1-0.2-0.5*cos( (180-360/8)/2/180*pi)>, <0.5*sin( (180-360/8)/2/180*pi), 0.2+0.5*cos( (180-360/8)/2/180*pi)>, <0, 0.2>, <0,0> rotate <-90,0,90> translate 0.5*x scale <0.8,0.8,1> translate <0.47,0.15,0.85> } } union{ union{ union{ union{ union{ union{ union{ object{bridgePart rotate (352/8)*counter*z translate 1*x} object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} rotate (352/8)*counter*z translate 1*x } object{bridgePart} scale <7/8,1,1> translate -4*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{<-4.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 <0,0,shipPos> } 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> } } }