Image_3D
[ class tree: Image_3D ] [ index: Image_3D ] [ all elements ]

Source for file ascii.php

Documentation is available at ascii.php

  1. <?php
  2.  
  3. $images 'php://output';
  4. $times_file 'times.txt';
  5. $iterations = 50;
  6.  
  7. $GLOBALS['times'= array();
  8. $GLOBALS['times_fp'fopen($times_file'a');
  9.  
  10. function getTime($string = null{
  11.     if (is_string($string)) {
  12.         $GLOBALS['times'][$stringmicrotime(true);
  13.         fwrite($GLOBALS['times_fp']sprintf("%sStart '%s'\n"str_repeat("\t"count($GLOBALS['times']- 1)$string));
  14.     else {
  15.         $keys array_keys($GLOBALS['times']);
  16.         $last end($keys);
  17.         fwrite($GLOBALS['times_fp']sprintf("%s-> %2.4fs\n"str_repeat("\t"count($GLOBALS['times']- 1)microtime(true$GLOBALS['times'][$last]));
  18.         unset($GLOBALS['times'][$last]);
  19.     }
  20. }
  21.  
  22. getTime('Start');
  23.  
  24. getTime('Initialize classes');
  25. require_once('Image/3D.php');
  26.  
  27. getTime('Create world');
  28. $world = new Image_3D();
  29. $world->setColor(new Image_3D_Color(000));
  30.  
  31. getTime('Create lights');
  32. $light1 $world->createLight(-500-500-500);
  33. $light1->setColor(new Image_3D_Color(255255255));
  34.  
  35. $light2 $world->createLight(0500-550);
  36. $light2->setColor(new Image_3D_Color(02550));
  37.  
  38. getTime('Create objects');
  39. $p1 $world->createObject('cube'array(808080));
  40. $p1->setColor(new Image_3D_Color(200200200));
  41. $p1->transform($world->createMatrix('Rotation'array(45450)));
  42.  
  43. getTime('Set options');
  44. $world->setOption(Image_3D::IMAGE_3D_OPTION_BF_CULLINGfalse);
  45. $world->setOption(Image_3D::IMAGE_3D_OPTION_FILLEDtrue);
  46.  
  47. getTime('Create renderer and driver');
  48. $rotation $world->createMatrix('Rotation'array(250));
  49. $renderer $world->createRenderer('perspectively');
  50. $driver $world->createDriver('ASCII');
  51.  
  52. getTime('Create initial picture');
  53. $world->render(2 * 806 * 30$images);
  54.  
  55. getTime('Start animation');
  56. $start microtime(true);
  57. $i = 0;
  58. while ($i++ < $iterations{
  59.     getTime('Render image ' $i);
  60.     $p1->transform($rotation);
  61.     $driver->reset();
  62.     $renderer->render($images);
  63.     getTime();
  64. }
  65.  
  66. $time microtime(true$start;
  67. printf("%2.2f fps\n"$iterations $time);

Documentation generated on Mon, 11 Mar 2019 14:04:19 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.