Exemplo n.º 1
0
 function &sphereScene($level, &$center, $radius)
 {
     $sphere = new Sphere($center, $radius);
     if ($level == 1) {
         return $sphere;
     } else {
         $scene = new Group(new Sphere($center, 3.0 * $radius));
         $scene->add($sphere);
         $rn = 3.0 * $radius / sqrt(12.0);
         for ($dz = -1; $dz <= 1; $dz += 2) {
             for ($dx = -1; $dx <= 1; $dx += 2) {
                 $c2 = newVector($center[0] - $dx * $rn, $center[1] + $rn, $center[2] - $dz * $rn);
                 $scene->add(Scene::sphereScene($level - 1, $c2, $radius / 2.0));
             }
         }
         return $scene;
     }
 }