1<?php 2 3set_time_limit(0); 4require_once('Image/3D.php'); 5 6$world = new Image_3D(); 7$world->setColor(new Image_3D_Color(255, 255, 255)); 8 9$light = $world->createLight('Light', array(-2000, -2000, -2000)); 10$light->setColor(new Image_3D_Color(255, 255, 255)); 11 12$redSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(0, -25, 0), 'angle' => 30, 'float' => 2)); 13$redSpot->setColor(new Image_3D_Color(255, 0, 0)); 14 15$blueSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(-35, 25, 0), 'angle' => 30, 'float' => 2)); 16$blueSpot->setColor(new Image_3D_Color(0, 0, 255)); 17 18$greenSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(35, 25, 0), 'angle' => 30, 'float' => 2)); 19$greenSpot->setColor(new Image_3D_Color(0, 255, 0)); 20 21$map = $world->createObject('map'); 22 23$detail = 80; 24$size = 200; 25$height = 40; 26 27$raster = 1 / $detail; 28for ($x = -1; $x <= 1; $x += $raster) { 29 $row = array(); 30 for ($y = -1; $y <= 1; $y += $raster) { 31 $row[] = new Image_3D_Point($x * $size, $y * $size, sin($x * pi()) * sin($y * 2 * pi()) * $height); 32 } 33 $map->addRow($row); 34} 35 36$map->setColor(new Image_3D_Color(150, 150, 150, 0)); 37 38$world->transform($world->createMatrix('Rotation', array(-20, 10, -10))); 39 40$world->createRenderer('perspectively'); 41$world->createDriver('GD'); 42$world->render(400, 400, 'Image_3D_Spotlights.png'); 43 44echo $world->stats(); 45 46