vr2-6-01.wrl


[ VRML source code ]

#VRML V2.0 utf8
#vr2-6-01.wrl
Background { skyColor 1 1 1 }
Shape {
  appearance Appearance {
    material Material {
      transparency 0.5
      diffuseColor 0 1 0
    }
  }
  geometry Box { size 2 2 2 }
}
Group {
  children [
    DEF Ball1 Transform {
      children Shape {
        appearance Appearance {
          material Material {
            diffuseColor 1 1 0
          }
        }
        geometry Sphere { radius 0.15 }
      }
    },
    DEF Timer1 TimeSensor {
      cycleInterval 10.0
      loop TRUE
      startTime 1.0
      stopTime  0.0
    },
    DEF Change1 Script {
      eventIn SFFloat set_angle
      eventOut SFVec3f coord
      url "javascript:
        function set_angle(angle, eventTime) {
          coord[0] = Math.sin(7*angle*6.28);
          coord[1] = Math.cos(5*angle*6.28);
          coord[2] = Math.cos(3*angle*6.28);
        }"
    }
  ]
}
Group {
  children [
    DEF Ball2 Transform {
      children Shape {
        appearance Appearance {
          material Material {
            diffuseColor 0 1 1
          }
        }
        geometry Sphere { radius 0.1 }
      }
    },
    DEF Timer2 TimeSensor {
      cycleInterval 2.0
      loop TRUE
      startTime 1.0
      stopTime  0.0
    },
    DEF Change2 Script {
      eventIn SFFloat set_angle
      eventOut SFVec3f coord
      url "javascript:
        function set_angle(angle, eventTime) {
          coord[0] = Math.sin(2*angle*6.28);
          coord[1] = Math.cos(4*angle*6.28);
          coord[2] = Math.cos(6*angle*6.28);
        }"
    }
  ]
}
Group {
  children [
    DEF Ball3 Transform {
      children Shape {
        appearance Appearance {
          material Material {
            diffuseColor 1 0 1
          }
        }
        geometry Sphere { radius 0.125 }
      }
    },
    DEF Timer3 TimeSensor {
      cycleInterval 7.5
      loop TRUE
      startTime 1.0
      stopTime  0.0
    },
    DEF Change3 Script {
      eventIn SFFloat set_angle
      eventOut SFVec3f coord
      url "javascript:
        function set_angle(angle, eventTime) {
          coord[0] = Math.sin(6*angle*6.28);
          coord[1] = Math.cos(7*angle*6.28);
          coord[2] = Math.cos(5*angle*6.28);
        }"
    }
  ]
}
ROUTE Timer1.fraction_changed TO Change1.set_angle
ROUTE Change1.coord_changed TO Ball1.set_translation
ROUTE Timer2.fraction_changed TO Change2.set_angle
ROUTE Change2.coord_changed TO Ball2.set_translation
ROUTE Timer3.fraction_changed TO Change3.set_angle
ROUTE Change3.coord_changed TO Ball3.set_translation