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.


I, the author of this work, hereby publish it under the following license:
GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

العربية | Česky | Deutsch | English | Español | Français | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Slovenčina | Svenska | עברית +/-


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

De følgende sider henviser til dette billede: