File talk:Tobacco mosaic virus structure.png

来自Wikimedia Commons
跳转到导航 跳转到搜索

pov-ray source file[编辑]

global_settings
{
    assumed_gamma 1.0
}

#include "colors.inc" 
#include "glass.inc"

#local zoom=0;

// ----------------------------------------
camera
{
  location  <0, 45, 90>
    angle 20
  look_at   <0.0, 0.0,  0.0>  
}

light_source
{
  0*x // light's position (translated below)
  color rgb <1,1,1>  // light's color
  translate <2000, 2000, -1000>
}

light_source
{
  0*x // light's position (translated below)
  color rgb <1,1,1>*0.5  // light's color
  translate <2000, -1000, -1000>
}

light_source
{
  0*x // light's position (translated below)
  color rgb <0.6,0.6,0.6>  // light's color
  translate <-2000, 2000, 1000>
}

#default{ texture{ finish  { ambient       .1
                             diffuse       .6
                             phong         .75
                             phong_size  50
                           } 
                 }   
        }


#declare helixPos = <2,0,0>;
#declare step = 0;
#declare tt = 0;

union{

object{
union{
#while(step<300/2.3*100)
    #local helixPosNext = vaxis_rotate(helixPos,y,3.6)+<0,2.3/100,0>;

    #if(step>100*8)
        #local helixPosNext = helixPosNext+<0,2.3*2/100,0>;
    #end

    cylinder{
    <helixPos.x*5,helixPos.y,helixPos.z*5>,
    <helixPosNext.x*5,helixPosNext.y,helixPosNext .z*5>,
    0.3
    scale <1/5,1,1/5>
            texture{pigment{color rgb<1,0.7,0>}             
            }
    }
    #declare helixPos =  helixPosNext;
    #declare step=step+1;
#end
}
}

#declare step = 0;

object{
union{
#while(step< (300/2.3*(360/16.3)*2/20) )

#if ( (step< (300/2.3*(360/16.3)*2/40) ) )
    sphere{0, 3.5
    translate 5.5*x
    scale <1,0.2,0.3>

    rotate(360/16.3)*step*y

    #local transY = (2.3/(360/16.3)/2)*(step+8);
    translate transY    *y

            texture{pigment{color rgb<0,0,1>} }        
    }
#else

#if ( step=  217)
    sphere{0, 3.5
    translate 5.5*x
    scale <1,0.2,0.3>

    rotate(360/16.3)*step*y

    #local transY = (2.3/(360/16.3)/2)*(step+8);
    translate transY    *y

            texture{pigment{color rgb<0,0,1>} }        
    }
#end
#if ( step=  219)
    sphere{0, 3.5
    translate 5.5*x
    scale <1,0.2,0.3>

    rotate(360/16.3)*step*y

    #local transY = (2.3/(360/16.3)/2)*(step+8);
    translate transY    *y

            texture{pigment{color rgb<0,0,1>} }        
    }
#end
#if ( step=  282)
    sphere{0, 3.5
    translate 5.5*x
    scale <1,0.2,0.3>

    rotate(360/16.3)*step*y

    #local transY = (2.3/(360/16.3)/2)*(step);
    translate transY    *y

            texture{pigment{color rgb<0,0,1>} }        
    }
#end

#end

        #declare step=step+1;
#end
}
//        texture{pigment{color rgb<0,0,1>} }
}

//translate -150*y
translate  -10*y

//rotate -90*z
rotate 0*y
no_shadow
}


//scale
union{
triangle{0,<300 ,0,0>,<0,2,0>}
triangle{<300 ,2,0>,<300 ,0,0>,<0,2,0>}

translate <-150,-23, 0>
}