Für den Softwaretest des
POV-Ray-Zauberwürfel-Framework
benötigt man fast alle Dateien, die auf der Seite
POV-Ray-Zauberwürfel
zu finden sind.
An dieser Stelle mache ich es mir auch ganz einfach, aber effektiv!
Ich zeige zu jedem Animationsfilm des obigen Tutoriums die Quelldatei an.
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
Atom,
CreateAtom1(TA, TagZN),
Atom,
Atom,
Atom,
CreateAtom1(TA, TagXP),
Atom,
Atom,
Atom,
Atom,
CreateAtom2(TA, CreateTag(TZN, -y), CreateTag(TXP, -z)),
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom)
// INI: 0 <= clock <= 3
Cube_R_(TeachingCube, 0.3, 0.45, clock)
Cube_D (TeachingCube, 0.5, 0.65, clock)
Cube_R (TeachingCube, 0.7, 0.85, clock)
Cube_D (TeachingCube, 0.9, 1.05, clock)
Cube_R_(TeachingCube, 1.1, 1.25, clock)
Cube_D_(TeachingCube, 1.3, 1.45, clock)
Cube_D_(TeachingCube, 1.5, 1.65, clock)
Cube_R (TeachingCube, 1.7, 1.85, clock)
Cube_D_(TeachingCube, 1.9, 2.05, clock)
Cube_R_(TeachingCube, 2.1, 2.25, clock)
Cube_D_(TeachingCube, 2.3, 2.45, clock)
Cube_R (TeachingCube, 2.5, 2.65, clock)
Cube_Show(TeachingCube)
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
Atom,
CreateAtom1(TA, TagZN),
Atom,
Atom,
Atom,
CreateAtom1(TA, TagXP),
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
CreateAtom2(TA, CreateTag(TZN, +x), CreateTag(TXP, -y)),
Atom,
Atom,
Atom)
// INI: 0 <= clock <= 3
Cube_F (TeachingCube, 0.3, 0.45, clock)
Cube_D_(TeachingCube, 0.5, 0.65, clock)
Cube_F_(TeachingCube, 0.7, 0.85, clock)
Cube_D_(TeachingCube, 0.9, 1.05, clock)
Cube_F (TeachingCube, 1.1, 1.25, clock)
Cube_D (TeachingCube, 1.3, 1.45, clock)
Cube_D (TeachingCube, 1.5, 1.65, clock)
Cube_F_(TeachingCube, 1.7, 1.85, clock)
Cube_D (TeachingCube, 1.9, 2.05, clock)
Cube_F (TeachingCube, 2.1, 2.25, clock)
Cube_D (TeachingCube, 2.3, 2.45, clock)
Cube_F_(TeachingCube, 2.5, 2.65, clock)
// Die blaue Seite etwas in Richtung des Betrachters drehen
object { Cube_Show(TeachingCube) rotate <0.0, 18.0, 0.0> }
Würfel kann auch gedreht werden.
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
// Alles in einem Makro kapseln
#macro Kapsel()
#local TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
Atom,
CreateAtom1(TA, TagZN),
CreateAtom2(TA, CreateTag(TXP, -z), CreateTag(TZN, +x)),
Atom,
Atom,
CreateAtom1(TA, TagXP),
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom,
Atom)
// INI: 0 <= clock <= 2
Cube_F (TeachingCube, 0.3, 0.45, clock)
Cube_D (TeachingCube, 0.5, 0.65, clock)
Cube_F_(TeachingCube, 0.7, 0.85, clock)
Cube_D_(TeachingCube, 0.9, 1.05, clock)
Cube_R_(TeachingCube, 1.1, 1.25, clock)
Cube_D_(TeachingCube, 1.3, 1.45, clock)
Cube_R (TeachingCube, 1.5, 1.65, clock)
Cube_D (TeachingCube, 1.7, 1.85, clock)
Cube_Show(TeachingCube)
#end // End of Macro "Kapsel"
// Kapselungsmakro ausführen
Kapsel()
Würfel kann auch gekapselt werden.
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
CreateAtom2(TA, TagXN, TagZN),
CreateAtom1(TA, TagZN),
CreateAtom2(TA, TagXP, TagZN),
CreateAtom1(TA, TagXN, ),
Atom,
CreateAtom1(TA, TagXP, ),
CreateAtom2(TA, TagXN, TagZP),
CreateAtom1(TA, TagZP),
CreateAtom2(TA, TagXP, TagZP),
CreateAtom3(TA,
CreateTag(TXP, -x),
CreateTag(TYN, -z),
CreateTag(TZN, -y)),
Atom,
CreateAtom3(TA,
CreateTag(TZN, +x),
CreateTag(TYN, -y),
CreateTag(TXN, -z)),
Atom,
CreateAtom1(TA, CreateTag(TYN, -y)),
Atom,
Atom,
Atom,
Atom)
// INI: 0 <= clock <= 3
Cube_R_(TeachingCube, 0.3, 0.45, clock)
Cube_D_(TeachingCube, 0.5, 0.65, clock)
Cube_R (TeachingCube, 0.7, 0.85, clock)
Cube_F (TeachingCube, 0.9, 1.05, clock)
Cube_D (TeachingCube, 1.1, 1.25, clock)
Cube_F_(TeachingCube, 1.3, 1.45, clock)
Cube_R_(TeachingCube, 1.5, 1.65, clock)
Cube_D (TeachingCube, 1.7, 1.85, clock)
Cube_R (TeachingCube, 1.9, 2.05, clock)
Cube_D (TeachingCube, 2.1, 2.25, clock)
Cube_D (TeachingCube, 2.3, 2.45, clock)
Cube_Show(TeachingCube)
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
CreateAtom2(TA, TagXN, TagZN),
CreateAtom1(TA, TagZN),
CreateAtom2(TA, TagXP, TagZN),
CreateAtom1(TA, TagXN, ),
Atom,
CreateAtom1(TA, TagXP, ),
CreateAtom2(TA, TagXN, TagZP),
CreateAtom1(TA, TagZP),
CreateAtom2(TA, TagXP, TagZP),
Atom,
Atom,
CreateAtom3(TA,
CreateTag(TZN, +x),
CreateTag(TXP, -y),
CreateTag(TYN, -z)),
Atom,
CreateAtom1(TA, CreateTag(TYN, -y)),
Atom,
CreateAtom3(TA,
CreateTag(TZP, -x),
CreateTag(TYN, +z),
CreateTag(TXN, -y)),
Atom,
CreateAtom3(TA,
CreateTag(TYN, +x),
CreateTag(TXP, +z),
CreateTag(TZP, -y)))
// INI: 0 <= clock <= 3
Cube_R_(TeachingCube, 0.3, 0.45, clock)
Cube_D_(TeachingCube, 0.5, 0.65, clock)
Cube_R (TeachingCube, 0.7, 0.85, clock)
Cube_D_(TeachingCube, 0.9, 1.05, clock)
Cube_R_(TeachingCube, 1.1, 1.25, clock)
Cube_D (TeachingCube, 1.3, 1.45, clock)
Cube_D (TeachingCube, 1.5, 1.65, clock)
Cube_R (TeachingCube, 1.7, 1.85, clock)
Cube_D_(TeachingCube, 1.9, 2.05, clock)
Cube_D_(TeachingCube, 2.1, 2.25, clock)
Cube_Show(TeachingCube)
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
CreateAtom2(TA, TagXN, TagZN),
CreateAtom1(TA, TagZN),
CreateAtom2(TA, TagXP, TagZN),
CreateAtom1(TA, TagXN, ),
Atom,
CreateAtom1(TA, TagXP, ),
CreateAtom2(TA, TagXN, TagZP),
CreateAtom1(TA, TagZP),
CreateAtom2(TA, TagXP, TagZP),
CreateAtom3(TA, TagXN, TagYN, TagZN),
Atom,
CreateAtom3(TA, TagXP, TagYN, TagZN),
CreateAtom2(TA, CreateTag(TYN, -x), CreateTag(TZP, -y)),
CreateAtom1(TA, TagYN ),
CreateAtom2(TA, CreateTag(TXN, +x), CreateTag(TYN, -y)),
CreateAtom3(TA, TagXN, TagYN, TagZP),
CreateAtom2(TA, CreateTag(TYN, +z), CreateTag(TXP, -y)),
CreateAtom3(TA, TagXP, TagYN, TagZP))
// INI: 0 <= clock <= 3
Cube_L_(TeachingCube, 0.3, 0.45, clock)
Cube_R (TeachingCube, 0.5, 0.65, clock)
Cube_F_(TeachingCube, 0.7, 0.85, clock)
Cube_L (TeachingCube, 0.9, 1.05, clock)
Cube_R_(TeachingCube, 1.1, 1.25, clock)
Cube_D (TeachingCube, 1.3, 1.45, clock)
Cube_D (TeachingCube, 1.5, 1.65, clock)
Cube_L_(TeachingCube, 1.7, 1.85, clock)
Cube_R (TeachingCube, 1.9, 2.05, clock)
Cube_F_(TeachingCube, 2.1, 2.25, clock)
Cube_L (TeachingCube, 2.3, 2.45, clock)
Cube_R_(TeachingCube, 2.5, 2.65, clock)
Cube_Show(TeachingCube)
#include "develop.pov"
#include "develop.mirrors.pov"
#include "cube.pov"
#include "develop.tags.pov"
/* Würfel */
#declare TeachingCube = array[3][3][3];
Cube_Config(TeachingCube,
CreateAtom3(TA, TagXN, TagYP, TagZN),
CreateAtom2(TA, TagYP, TagZN),
CreateAtom3(TA, TagXP, TagYP, TagZN),
CreateAtom2(TA, TagXN, TagYP ),
CreateAtom1(TA, TagYP ),
CreateAtom2(TA, TagXP, TagYP ),
CreateAtom3(TA, TagXN, TagYP, TagZP),
CreateAtom2(TA, TagYP, TagZP),
CreateAtom3(TA, TagXP, TagYP, TagZP),
CreateAtom2(TA, TagXN, TagZN),
CreateAtom1(TA, TagZN),
CreateAtom2(TA, TagXP, TagZN),
CreateAtom1(TA, TagXN, ),
Atom,
CreateAtom1(TA, TagXP, ),
CreateAtom2(TA, TagXN, TagZP),
CreateAtom1(TA, TagZP),
CreateAtom2(TA, TagXP, TagZP),
CreateAtom3(TA, TagXN, TagYN, TagZN),
Atom,
CreateAtom3(TA, TagXP, TagYN, TagZN),
CreateAtom2(TA, CreateTag(TYN, -x), CreateTag(TXP, -y)),
CreateAtom1(TA, TagYN ),
CreateAtom2(TA, CreateTag(TZP, +x), CreateTag(TYN, -y)),
CreateAtom3(TA, TagXN, TagYN, TagZP),
CreateAtom2(TA, CreateTag(TYN, +z), CreateTag(TXN, -y)),
CreateAtom3(TA, TagXP, TagYN, TagZP))
// INI: 0 <= clock <= 3
Cube_F (TeachingCube, 0.3, 0.45, clock)
Cube_L (TeachingCube, 0.5, 0.65, clock)
Cube_B_(TeachingCube, 0.7, 0.85, clock)
Cube_L_(TeachingCube, 0.9, 1.05, clock)
Cube_F_(TeachingCube, 1.1, 1.25, clock)
Cube_B (TeachingCube, 1.3, 1.45, clock)
Cube_D (TeachingCube, 1.5, 1.65, clock)
Cube_B (TeachingCube, 1.7, 1.85, clock)
Cube_D_(TeachingCube, 1.9, 2.05, clock)
Cube_B_(TeachingCube, 2.1, 2.25, clock)
Cube_Show(TeachingCube)
Die Animationen sehen genauso aus, wie ich sie programmiert bzw. entwickelt habe.
Ich glaube, es passt alles.
:-)