File:Leiterschaukelversuch.ogv

From Outreach Wiki
Jump to navigation Jump to search

Original file(Ogg Theora video file, length 30 s, 1,920 × 1,080 pixels, 952 kbps, file size: 3.41 MB)


Wikimedia Commons Logo This free media file is from Wikimedia Commons. Its description page is included below.

Summary

Description
Deutsch: Leiterschaukelversuch, Details next weekend.
Date
Source Own work
Author Miessen

Source code

leiterschaukel.pov

// povray 3.6


// Leiterschaukelversuch
//
// Demonstration der Lorentzkraft (im engeren Sinne) am stromdurchflossenen Leiter.
// Mit einer einstellbaren Stromquelle wird ein beweglich aufgehängter Leiterbügel
// bestromt, wobei sich dessen Querstück in Magnetfeld eines Hufeisenmagneten befindet.
// Abhängig von der (technischen) Stromrichtung ändert sich der Ausschlag des Leiterbügels

// Wesentliche Bestandteile bilden die einstellbare Stromquelle, die bewegliche
// Leiterschaukel, der Hufeisenmagnet, die Aufhängung und die Verdrahtung. Die Sequenz
// Ausschlag nach rechts und Ausschlag nach links wird dabei zweimal durchlaufen



// Achsen
// x -> links nach rechts
// y -> von unten nach oben
// z -> tiefe

global_settings {
   adc_bailout 0.00392157
   assumed_gamma 1.5
   noise_generator 2
   charset utf8
   
}


light_source {
   <10, 25, -35>,
   rgb <1.5, 1.5, 1.5>
   shadowless
}

camera {
   perspective
   location <10, 25, -35>
   sky <0, 1, 0>
   direction <0, 0, 1>
   right <1, 0, 0>
   up <0, 1, 0>
   look_at <5, 5, 0>
}

/*
camera { // X
   perspective
   location <45, 0, 0>
   sky <0, 1, 0>
   direction <0, 0, 1>
   right <1, 0, 0>
   up <0, 1, 0>
   look_at <0, 5, 0>
}

camera { // Z
   perspective
   location <0, 0, -45>
   sky <0, 1, 0>
   direction <0, 0, 1>
   right <1, 0, 0>
   up <0, 1, 0>
   look_at <0, 5, 0>
}
*/

#include "baukasten.pov"

#include "verdrahtung.pov"



// *******
// *
// * MAIN
// *
// *******

// Sequenz:
// 2x Durchlaufen
// pause 0,025 // anstieg 0,075 // halten 0,05 // abfall 0,075
// pause 0,05 // gegen anstieg 0,075 // halten 0,05 // abfall 0,075 // pause 0,025

// Variable faktor hat den Wertebereich -1..+1
#declare faktor = 0;


// 2x Durchlaufen
#declare my_clock = clock;

#if (my_clock > 0.5)
  #declare my_clock = my_clock - 0.5;
#end

// pause 0,025
#declare progress = 0.025;

#if (my_clock>progress) // anstieg 0,075
  #declare faktor = (my_clock-progress)/0.075;
#end
#declare progress = progress + 0.075;

#if ( my_clock> progress ) // halten 0,05
  #declare faktor = 1;
#end
#declare progress = progress + 0.05;

#if ( my_clock>progress ) // abfall 0,075
  #declare faktor = 1 - (my_clock-progress)/0.075;
#end
#declare progress = progress + 0.075;

#if ( my_clock>progress ) // halten 0,05
  #declare faktor = 0;
#end
#declare progress = progress + 0.05;

#if ( my_clock>progress ) // gegenanstieg 0,075
  #declare faktor = -1*(my_clock-(progress))/0.075;
#end
#declare progress = progress + 0.075;

#if ( my_clock>progress ) // halten 0,05
  #declare faktor = -1;
#end
#declare progress = progress + 0.05;

#if ( my_clock>progress ) // abfall 0,075
  #declare faktor = -1 - -1 * (my_clock-progress)/0.075;
#end
#declare progress = progress + 0.075;

#if ( my_clock>progress ) // pause 0,025
  #declare faktor = 0;
#end



object {
  leiterschaukel
  rotate z*faktor*15
  translate <0, 15, 0>  
}

object {
  aufhaengung
  translate <0, 15, 0>  
}



object {
  hufeisen
}


union {
  object {
    stromquelle
  }
  object {
    drehknopf
    rotate z*faktor*-135
    translate<0, 5, 0>
  }
  translate<15, -5, 11>
}

object {
  verdrahtung
}


// Raster oder wie auch immer

object { // Platte
  Grid_Plate(
      0, 0,
      3, 0.05,
      pigment{
        color rgb<1,1,1>*1.1
      },
      1,
      <24, 0, 27>,
      <-12, -1, -9>, 
)
  translate<0, -5,0>
}

/*
object {
  Grid(3, 0.05,
      pigment{
        color rgb<1,1,1>*1.1
      } )
  translate<0, -5,0>
}
*/

sky_sphere{
  pigment{
    gradient <0,1,0> // Hintergrund
    color_map {
      [0   color rgb<1,1,1>         ]//White
      [0.4 color rgb<0.24,0.34,0.56>]//~Navy
      [0.6 color rgb<0.24,0.34,0.56>]//~Navy
      [1.0 color rgb<1,1,1>         ]//White
    }
    scale 2
  }
} // end of sky_sphere

// EOF

baukasten.pov

// povray 3.6

// Baukasten für den Leiterschaukelversuch
//
// * einstellbare Stromquelle
// * Aufhängung
// * Leiterschaukel
// * Hufeisenmagnet


// Wesentliche Bestandteile bilden die einstellbare Stromquelle, die bewegliche
// Leiterschaukel, der Hufeisenmagnet, die Aufhängung und die Verdrahtung. Die Sequenz
// Ausschlag nach rechts und Ausschlag nach links wird dabei zweimal durchlaufen




#declare drehknopf = union { // Drehknopf
  cone { // Drehknopf der Stromquelle
    <0, 0, 0>, 1.5 <0, 0, -2>, 1
  }
  intersection {
    box {
      <-0.2, 0, 0>, <0.2, 2, -2.1>
    }
    cone { // Zeiger
      <0, 0, 0>, 1.7 <0, 0, -2>, 1.2
    }
  }
  
  pigment { // grau
    color rgb <0.5, 0.5, 0.6>
  }

}

#declare beschriftung_knopf = text { // Beschriftung für den Drehknopf
  // ttf "arial.ttf" // für windows
  // ttf "/usr/share/fonts/truetype/DejaVuSans.ttf",
  // cp /usr/share/fonts/truetype/DejaVuSans.ttf DejaVuSans.ttf // für linux
  ttf "DejaVuSans.ttf",
  "− ← 0 → +", 0.025, 0
  pigment{ // schwarz
    color rgb<0, 0, 0>
  }
}

#declare beschriftung_anschluss = union { // Beschriftung für die Anschlüsse

// länge 4

  cylinder { // Skalenteiler
    <1, 0, 0>, <2.5, 0, -0>, 0.1
    scale <1, 1, 0.025> // in der z-Achse plätten
  }
  cone { // Anschluss rot
    <1, 0, 0>, 0.25 <0, 0, -0>, 0
    scale <1, 1, 0.025> // in der z-Achse plätten
  }

  text {
    // ttf "courier.ttf" // für windows
    // ttf "/usr/share/fonts/truetype/DejaVuSerif.ttf",
    // cp /usr/share/fonts/truetype/DejaVuSerif.ttf DejaVuSerif.ttf // für linux
    ttf "DejaVuSerif.ttf",
    "I", 0.025, 0
    
    translate<1, 1, -0.025>
  
  }

  pigment { // schwarz
    color rgb<0, 0, 0>
  }


}

#declare stromquelle = union {
  box { // Gehäuse
    <-7, 0, 0>, <7, 11, 14>
    pigment { // grau
      color rgb <0.7, 0.7, 0.8>
    }
  }

  // http://www.f-lohmueller.de/pov_tut/animate/anim113e.htm

  #declare SkalaNr = 0;
  #declare Flat = <1, 1, 0.025>; // in der z-Achse plätten

  union {
    #while (SkalaNr<=10)

      cylinder { // Skalenteiler
        // platter Zylinder
        #if (SkalaNr = 0 | SkalaNr = 5 | SkalaNr = 10 )
          <2, 0, 0>, <2.75, 0,0>, 0.1
        #else 
          <2, 0, 0>, <2.5, 0,0>, 0.1
        #end
        scale Flat
        rotate z*(27*SkalaNr-45)
      }
      #declare SkalaNr=SkalaNr+1;
    #end
    
    translate<0, 5, 0>
    pigment { // schwarz
      color rgb <0, 0, 0>
    }

//    translate<0, 5, -0.025>
  }
  
  object {
    beschriftung_knopf
    translate x*-1* max_extent(beschriftung_knopf)/2 // hack -> center text
    translate<0, 8, -0.025>
  }
  
  cone { // Anschluss rot
    <0, 0, 0>, 0.5 <0, 0, -2>, 0.3

    translate<5.5, 2, 0>
    pigment { // rot
      color rgb <1, 0, 0>
    }
  }

  cone { // Anschluss schwarz
    <0, 0, 0>, 0.5 <0, 0, -2>, 0.3

    translate<4, 2, 0>
    pigment { // schwarz
      color rgb <0.1, 0.1, 0.1>
    }
  }
  object {
    beschriftung_anschluss
    translate<3.5, 3, 0>
  }

}



#declare aufhaengung = union { // Aufhängung für die Leiterschaukel
  union { // Standfuß
    cylinder { // Säule
      <0, 4, 0>, <0, -19, 0>, 0.3
    }
    /*
    box { // Säule
      <-0.75, 2, -0.75>, <0.75, -19, 0.75>
    }
    */
    box { // Bodenplatte
      <-3, -19, -3>, <3, -20, 3>
    }
    translate<0,0,9>
    pigment { // grau
      color rgb <0.5, 0.5, 0.5>
    }
  }
  /*
  cylinder { // Haltebalken
    <0, 1, -5>, <0, 1, 9>, 0.5

    pigment { // grau
      color rgb <0.5, 0.5, 0.5>
    }
  }
  */
  box { // Haltebalken
    <-0.6, -0.6, -5>, <0.6, 0.6, 10>

    translate<0,1.5,0>
    pigment { // grau
      color rgb <0.5, 0.5, 0.5>
    }
  }

  
  
  union { // Verbinder
    cylinder { // Verbinder hinten
      <0, 0, 4>, <0, 3, 4>, 0.15
    }
    sphere { // Eckkugel hinten
      <0, 0, 4>, 0.15
    }
    
    cylinder { // Verbinder vorne
      <0, 0, -4>, <0, 3, -4>, 0.15
    }
    sphere { // Eckkugel vorne
      <0, 0, -4>, 0.15
    }

    pigment { // orange
      color rgb <1, 0.388235, 0.235294>
    }
  }

  cone { // Anschluss blau
    <0, 0, 0>, 0.5 <0, 2, 0>, 0.3

    translate<0, 2.1, -4>
    pigment { // blau
      color rgb <0.2, 0.2, 1>
    }
  }
  cone { // Anschluss blau
    <0, 0, 0>, 0.5 <0, 2, 0>, 0.3

    translate<0, 2.1, +4>
    pigment { // blau
      color rgb <0.2, 0.2, 1>
    }
  }


  
  
}


#declare leiterschaukel = union { // Leiterschaukel
// Beschreibung:
//
// Der bewegliche Teil der Leiterschaukel U-foermig
//
// Ausrichtung:
//
// Oeffnung nach oben in der y-z-Ebene liegend
//
// Dimensionen:
//
// Lange: 15 / Tiefe
//
// Nullpunkt:
//
// Aufhaengepunkt der Leiterschaukel



  cylinder { // Querbalken
    <0, -15, 4>, <0, -15, -4>, 0.15
  }
  sphere { // Eckkugel vorne
    <0, -15, -4>, 0.15
  }
  sphere { // Eckkugel hinten
    <0, -15, 4>, 0.15
  }
  cylinder { // vorderer Balken
    <0, 0, -4>, <0, -15, -4>, 0.15
  }
  cylinder { // hinterer Balken
    <0, 0, 4>, <0, -15, 4>, 0.15
  }

  pigment { // orange
    color rgb <1, 0.388235, 0.235294>
  }

}

#declare hufeisen = union { // Hufeisenmagnet
// Beschreibung :
//
// Hufeisenmagnet
//
// Ausrichtung:
//
// Oeffnung zeigt nach rechts
// Nord/Suedpol sind zur y-Achse ausgerichtet
//
// Dimensionen:
//
// Breite: 5 / Hoehe: 10 / Laenge: 13 (Armlange: 12 / Dicke: 1)
// 
// Nullpunkt:
//
// Zwischen den Polschuhen auesseres Drittel

  merge { // Nordpol (rot)
    box { // magnetteil
      <0, 0, -2.5>, <1, 4, 2.5>
    }
    box { // polschuh
      <0, 4, -2.5>, <13, 5, 2.5>
    }
    pigment { // rot
      color rgb <1, 0, 0>
    }
  }

  merge {
    box { // magnetteil
      <0, 0, -2.5>, <1, -4, 2.5>
    }
    box { // polschuh
      <0, -4, -2.5>, <13, -5, 2.5>
    }  
  
    pigment { // gruen
      color rgb <0.168627, 0.678431, 0>
    }
  }
  translate <-9, 0, 0>  
}


// Grid macro erzeugt eine gerasterte bodenebene

// http://www.f-lohmueller.de/pov_tut/calc/math_300e.htm
#macro Grid_Plate(
    RD1, Width1,//primary raster distance/width,
    RD2, Width2,//secondary raster distance/width,
    Base_Texture, //  non = pigment { Clear }
    Intensity, // Line gray intensity
    Start_Box, End_Box, // vectors
  ) //------------------------------------------
//----------------------------------------------
box{ Start_Box,End_Box
     texture{ Base_Texture }
  #if (RD1 > 0 ) // raster big  RD1, Width1,
    texture { Grid_Lines(RD1,Width1,Intensity) }
    texture { Grid_Lines(RD1,Width1,Intensity)
              rotate<0,90,0>}
  #end
  #if (RD2 > 0 ) // raster small RD2, Width2,
    texture { Grid_Lines(RD2,Width2,Intensity) }
    texture { Grid_Lines(RD2,Width2,Intensity)
        rotate<0,90,0>}
  #end
} // end box -----------------------------------
#end // ------------------------------ end of macro
//------------------------------------- ////////////


#macro Raster(RScale, RLine)
pigment{
 gradient x scale RScale
 color_map{
     [0.000   color rgb<1,1,1>*0.5]
     [0+RLine color rgb<1,1,1>*0.5]
     [0+RLine color rgbt<1,1,1,1>]
     [1-RLine color rgbt<1,1,1,1>]
     [1-RLine color rgb<1,1,1>*0.5]
     [1.000   color rgb<1,1,1>*0.5]
    }}
#end// of "Raster(RScale, RLine)"




#macro Grid_Lines (RScale, LineW, Intensity_)
 pigment{ gradient x scale RScale
          color_map{
           [0.000   color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,0>*Intensity_]
           [1.000   color rgbt<1,1,1,0>*Intensity_]
           } // end color_map
         } // end pigment
 #end// of Raster(RScale, HLine)-macro

//---------------<<<< Grid macro

#macro Grid(RasterScale, RasterHalfLine, Background_pigment)
  plane{<0,1,0>,0
  //layered textures!
  texture{Background_pigment}
      // 1st layer - base color
  texture{
    Raster( RasterScale, RasterHalfLine)
   }
  texture{
    Raster( RasterScale, RasterHalfLine)
      rotate<0,90,0>
    }
  }// end of plane
#end // end of "Grid(...)"-macro 
 
 
// EOF

verdrahtung.pov

// povray 3.6

// Verdrahtung für den Leiterschaukelversuch
//
// Verdrahtung zwischen Stromquelle und Aufhängung
// mit vielen Magic-Numbers



#declare verdrahtung = union {
  union { // rot
    // Startpunkt
    // Anschluss rot x:5.5 y: 1.5 z: 2
    union { // Stromquelle
      cylinder { // Anschluss Stromquelle
        <0, 0, 0>, <0, 0, -2.5>, 0.2
      }
      sphere { // Eckkugel Stromquelle
        <0, 0, -2.5>, 0.2
      }
      cylinder { // von der Stromquelle zur Bodenplatte
        <0, 0, -2.5>, <-17, 0, -2.5>, 0.2
      }

      translate<5.5, 2, -2>
      
      translate<15, -5, 11>
    }
    
    union { // Aufhängung
      cylinder { // Anschluss Aufhängung vorne
        <-0.75, 0, 0>, <0.75, 0, 0>, 0.15
        pigment { // orange
          color rgb <1, 0.388235, 0.235294>
        }
      }
      cylinder { // Anschluss Aufhängung vorne
        <0.75, 0, 0>, <3.5, 0, 0>, 0.2
      }
      sphere { // Eckkugel Anschluss Aufhängung
        <3.5, 0, 0>, 0.2
      }
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <3.5, 0, 0>, <3.5, 0, 2.5>, 0.2
      }
      
      translate<0, 3, 4>
    
      translate <0, 15, 0>  
    }
    
    union { // Verbindung
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <0, 0, 0>, <0, 21, 0>, 0.2
      }
      sphere { // Eckkugel oben
        <0, 21, 0>, 0.2
      }
      sphere { // Eckkugel unten
        <0, 0, 0>, 0.2
      }
      translate <3.5, -4+1, 6.5>
    
    }
  
  
    pigment { // rot
      color rgb <1, 0, 0>
    }
  }
  
  union { // schwarz

    // Anschluss schwarz x:4 y: 1.5 z: 2
    union { // Stromquelle
      cylinder { // Anschluss Stromquelle
        <0, 0, 0>, <0, 0, -1>, 0.2
      }
      sphere { // Eckkugel Stromquelle
        <0, 0, -1>, 0.2
      }
      cylinder { // von der Stromquelle zur Bodenplatte
        <0, 0, -1>, <-17, 0, -1>, 0.2
      }
      
      translate<4, 2, -2>
      
      translate<15, -5, 11>
    }
    
    union { // Aufhängung
      cylinder { // Anschluss Aufhängung vorne
        <-0.75, 0, 0>, <0.75, 0, 0>, 0.15
        pigment { // orange
          color rgb <1, 0.388235, 0.235294>
        }
      }
      cylinder { // Anschluss Aufhängung vorne
        <0.75, 0, 0>, <2, 0, 0>, 0.2
      }
      sphere { // Eckkugel Anschluss Aufhängung
        <2, 0, 0>, 0.2
      }
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <2, 0, 0>, <2, 1.5, 0>, 0.2
      }
      sphere { // Eckkugel Anschluss Aufhängung
        <2, 1.5, 0>, 0.2
      }
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <2, 1.5, 0>, <2, 1.5, 12>, 0.2
      }
      /*
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <2, 0, 0>, <2, 0, 4>, 0.2
      }
*/

      translate<0, 3, -4>
    
      translate <0, 15, 0>  
    }

    union { // Verbindung
      cylinder { // Anschluss Aufhängung vorne zur Säule
        <0, 0, 0>, <0, 22.5, 0>, 0.2
      }
      sphere { // Eckkugel oben
        <0, 22.5, 0>, 0.2
      }
      sphere { // Eckkugel unten
        <0, 0, 0>, 0.2
      }
      translate <2, -4+1, 8>    
    }
    

    pigment { // schwarz
      color rgb <0.1, 0.1, 0.1>
    }
  }
}


// EOF

leiterschaukel.ini

povray 3.6
Die komplette Szene soll 30 Sekunden dauern und mit 25 FPS laufen.


Input_File_Name=leiterschaukel.pov

Initial_Clock=0 Final_Clock=1 Initial_Frame=0 Final_Frame=1

Final_Frame=10
Final_Frame=60
Final_Frame=300

Final_Frame=750

Final_Frame=1500
+W320 +H200
+W640 +H400
+W960 +H540

+W1920 +H1080

Output_File_Name=out/

Output_File_Name=r_leiterschaukel Cyclic_Animation=on Pause_when_Done=off Antialias=on

Display=off

ogv-ing.txt

  1. /bin/bash

rm -rf out; rm -rf yuv; rm -rf ogv; rm *png;

mkdir out; mkdir yuv; mkdir ogv;


povray leiterschaukel.ini;


mv *png ./out;

  1. scheitert ersterer, kommt letzterer zum Zug.

png2yuv -j ./out/r_leiterschaukel%02d.png -f 25 -I p -b 1 > ./yuv/out.yuv || png2yuv -j ./out/r_leiterschaukel%03d.png -f 25 -I p -b 1 > ./yuv/out.yuv;

./ffmpeg2theora-0.29.linux32.bin ./yuv/out.yuv -F 25 -v 9 -o ./ogv/leiterschaukel.ogv;


  1. rm -rf out;
  2. rm -rf yuv;

firefox ./ogv/leiterschaukel.ogv;

Licensing

I, the copyright holder of this work, hereby publish it under the following license:
Creative Commons CC-Zero This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication.
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

3 November 2013

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current17:36, 3 November 201330 s, 1,920 × 1,080 (3.41 MB)MiessenUser created page with UploadWizard

There are no pages that use this file.

Global file usage

The following other wikis use this file:

Metadata