Billede:Tackle principle.png
Fra Wikipedia, den frie encyklopædi
Denne fil er fra Wikimedia Commons, en samling af åbent indhold som Wikimedia Foundation er vært for. Beskrivelsen fra siden med beskrivelse af billedet er vist nedenfor. |
Shows the principle, forces and travelling distances in a basic tackle. Rendered using POV-Ray (see http://www.povray.org/) and the scene description code shown below.
This image comes complete with annotations; lettes, numbers and arrows. Because of this, rendering this image with POV-Ray requires the TrueType fonts "times.ttf" (Times New Roman) and "timesi.ttf" (Times New Roman italics) to be installed on the machine upon which POV-Ray is being run for the purpose.
The scene description assumes that the image is four times as tall as it is wide! When rendering, remember to specify the width and height of the rendering accordingly.
|
POV-Ray scene description for this image:
/* ================================================ Demonstrating the principle of the basic tackle ------------------------------------------------ Created by Søren Peo Pedersen - see my user page et http://da.wikipedia.org/wiki/Bruger:Peo ================================================ */ #macro WoodTxt(WhiteOut) // Wood texture with specified pigment { // degree of "whiting out" wood color_map { [0 color rgbt <.9+.1*WhiteOut,.7+.3*WhiteOut,.5+.5*WhiteOut>] [1 color rgbt <.7+.3*WhiteOut,.5+.5*WhiteOut,.4+.6*WhiteOut>] } scale .1 turbulence .05 translate <2,0,-1> } finish {ambient .4+.3*WhiteOut} #end #macro RopeTxt(WhiteOut) // Texture for ropes, with specified "whiting out" pigment {color rgb <1+.0*WhiteOut,.9+.1*WhiteOut,.6+.4*WhiteOut>} finish {ambient .4+.3*WhiteOut} #end #macro Tackle(WhiteOut) // Renders the tackle, weight and parts of the rope #local WheelSideCut=difference { cone {<0,0,.03>,.35,<0,0,.13>,.45} cone {<0,0,.3>,0,<0,0,-.3>,.6} } #local MetalTxt=texture { // Metal texture for hooks and weight pigment {color rgb .5+WhiteOut/4} finish { ambient .4+.2*WhiteOut reflection rgb .3 metallic } } merge { difference { box {<-.45,-1,-.3>,<.45,.5,.3>} // "body" of tackle box {<-1,-.5,-.1>,<1,1,.1>} // The "gap" for the wheel plane {<3,-1,0>,-.3} // Left "slanted" side plane {<-3,-1,0>,-.3} // Right "slanted" side texture {WoodTxt(WhiteOut) rotate <90,0,0>} } difference { // Wheel in the tackle cylinder {<0,0,-.09>,<0,0,.09>,.5} // "Body" of the wheel torus {.5,.07 rotate <90,0,0>} // Groove for the rope #object {WheelSideCut} // Cut-aways on both #object {WheelSideCut scale <1,1,-1>} // sides of the wheel texture {MetalTxt} translate <0,.25,0> } cylinder {<0,.25,-.4>,<0,.25,.4>,.1 // Axle through texture {MetalTxt} // wheel and tackle } sphere_sweep {b_spline,7 // Hook on the tackle < 0,-0.7,0>,.1 < 0,-1 ,0>,.1 < 0,-1.2,0>,.1 < .3,-1.5,0>,.09 < 0,-1.8,0>,.08 <-.3,-1.5,0>,.06 <-.3,-1.2,0>,.04 texture {MetalTxt} } merge { // Weight attached to the hook difference { // Round part of attachment ring torus {.2,.1 rotate <0,0,90>} plane {<0,1,0>,0} translate <0,-1.75,0> } cylinder {<0,-1.75,-.2>,<0,-1.85,-.2>,.1} // Straight parts of cylinder {<0,-1.75, .2>,<0,-1.85, .2>,.1} // attachment ring cone {<0,-1.85,0>,.4,<0,-2.8,0>,.6} // "Body" of the waight texture {MetalTxt} } merge { // Rope around the wheel in the tacle difference { torus {.5,.07 rotate <90,0,0>} plane {<0,-1,0>,0} } cylinder {<.5,0,0>, // Straight part of rope on right side of wheel <.5,#if (WhiteOut=0) 1 #else 6 #end,0>,.07 } translate <0,.25,0> texture {RopeTxt(WhiteOut)} } cylinder { // Free end of rope on left side of the wheel <-.5,.25,0>,<-.5,#if (WhiteOut=0) 7 #else 1 #end,0>,.07 texture {RopeTxt(WhiteOut)} } union { // Free end of the rope with the hook with ring attached: merge { // Knot and loop at the free end of the rope: #local Count=0; // The knot #while (Count<5) torus {.1,.07 translate <-.5,1.45-.14*Count,0>} #local Count=Count+1; #end difference { // Part of rope loop bent around the hook torus {.15,.07} box {<-1,-1,0>,<0,1,1> rotate <0,-30,0>} box {-1,<0,1,0> rotate <0,30,0>} rotate <0,0,90> translate <-.5,1.8,0> } cylinder { // Straight part of rope loop, away from viewer <0,0,.15>,<0,-.4,.15>,.07 rotate <30,0,0> translate <-.5,1.8,0> } cylinder { // Straight part of rope loop, towards viewer <0,0,-.15>,<0,-.4,-.15>,.07 rotate <-30,0,0> translate <-.5,1.8,0> } texture {RopeTxt(WhiteOut)} } merge { // Hook with ring at the free end of the rope sphere_sweep {b_spline,7 // The hook itself <-.5,2.8,0>,.1 <-.5,2.5,0>,.1 <-.5,2.3,0>,.1 <-.2,2 ,0>,.09 <-.5,1.7,0>,.08 <-.8,2 ,0>,.06 <-.8,2.3,0>,.04 } torus {.2,.1 rotate <90,0,0> translate <-.5,2.72,0>} // The ring on the hook texture {MetalTxt} } #if (WhiteOut=0) // Using WhiteOut property to specify the length of the translate <0,6,0> // free end of the rope, and hence the knot and hook #end } } #end #macro LengthArrow (Length,NameSymbol) // Double arrow with symbol for indicating lengths #local ArrowHead=difference { box {<-1,-1,-.001>,<0,0,.001> rotate <0,0,45> scale <1,3,1>} plane {<0,1,0>,-.5} } merge { box {<-.5,-.01,-.001>,<.5,.01,.001>} #object {ArrowHead scale <1,-1,1> translate <0,.01,0>} box {<-.01,.51,-.01>,<.01,Length-.51,.001>} #object {ArrowHead translate <0,Length-.01,0>} box {<-.5,Length-.01,-.001>,<.5,Length+.01,.001>} #object {NameSymbol translate <0, Length/2+(min_extent(NameSymbol).y-max_extent(NameSymbol).y)/2 ,0> } pigment {color rgb 0} no_shadow no_reflection } #end #macro ForceArrow (Length,NameSymbol) // Fat arrow with symbol for indicating forces merge { difference { box {<-1,-1,-.001>,<0,0,.001> rotate <0,0,45> scale <1,2,1>} plane {<0,1,0>,-.5} translate <0,Length,0> } box {<-.1,0,-.01>,<.1,Length-.5,.01>} #object {NameSymbol translate <0, Length/2+(min_extent(NameSymbol).y-max_extent(NameSymbol).y)/2 ,0> } pigment {color rgb 0} no_shadow no_reflection } #end // The scenario: box {<.3,2,-1000>,<.7,3,1000> texture {WoodTxt(0)}} // Wooden beam merge { // End of rope tied around the wooden beam: cylinder {<.77,3,0>,<.77,2,0>,.07} // Down the far side of the beam intersection { // Around farthest, upper corner on beam torus {.07,.07} box {<0,-1,-1>,<1,1,0>} rotate <90,0,0> translate <.7,3,0> } cylinder {<.3,3.07,0>,<.7,3.07,0>,.07} // Horizontal part above beam intersection { // Around the nearest, upper corner on beam torus {.07,.07} box {-1,<0,1,0>} rotate <90,0,0> translate <.3,3,0> } cylinder {<.23,3,0>,<.23,2,0>,.07} // Down the near side of the beam difference { // Around the nearest, lower corner on beam torus {.07,.07} plane {<0,0,1>,0} plane {<0,0,-1>,0 rotate <0,25,0>} rotate <90,0,0> translate <.3,2,0> } cylinder {<-.07,0,0>,<-.07,-.7,0>,.07 // From nearest lower corner on rotate <0,0,25> translate <.3,2,0> // the beam down to the knot } cylinder {<.07,0,0>,<.07,-.7,0>,.07 // From farthest lower corner on rotate <0,0,-25> translate <.7,2,0> // the beam down to the knot } #local Count=0; // The knot just underneath the wooden beam #while (Count<5) torus {.1,.07 translate <.5,1.45-.14*Count,0>} #local Count=Count+1; #end texture {RopeTxt(0)} } #object {Tackle(0)} // Tackle in upper position, at full "color density" #object {Tackle(.7) translate <0,-6,0>} // "Whited-out" tackle at lower position #object {LengthArrow(6, // Indicating the length "s" the weight travels text {ttf "timesi.ttf" "s",.001,0 translate <.1,0,0>} ) translate <1.2,-8.3,0>} #object {LengthArrow(12, // Indicating the length "2s" the hook travels union { text {ttf "times.ttf" "2",.001,0 translate <-.95,0,0>} text {ttf "timesi.ttf" "s",.001,0 translate <-.45,0,0>} } ) translate <-1.4,-3.28,0>} #object {ForceArrow(4, // Indicating the lifting force "F" on the weight text {ttf "timesi.ttf" "F",.001,0 translate <-.85,0,0>} ) translate <-1,-8.8,0> } #object {ForceArrow(2, // Indicating the force "F/2" excerted on the rope end union { text {ttf "timesi.ttf" "F",.001,0 translate <.3,.9,0>} box {<.2,.70,0>,<1.1,.74,.001>} text {ttf "times.ttf" "2",.001,0 translate <.4,-.1,0>} } ) translate <.3,7,0> } background {color rgb 1} // Provides the white backdrop camera { // Camera: Indicates where the scenario is up <0,1,0> // seen from, and where the viewer "looks" right <.25,0,0> location <-5,5,-30> look_at <-.3,.37,0> angle 8.4 } light_source {<-1000,2500,-2000> color rgb 1} // Illumination
Billedehenvisninger
De følgende sider henviser til dette billede: