$myPicture->drawGradientArea(0, 0, 400, 400, DIRECTION_VERTICAL, $Settings); $myPicture->drawGradientArea(0, 0, 400, 20, DIRECTION_VERTICAL, array("StartR" => 0, "StartG" => 0, "StartB" => 0, "EndR" => 50, "EndG" => 50, "EndB" => 50, "Alpha" => 100)); /* Add a border to the picture */ $myPicture->drawRectangle(0, 0, 399, 399, array("R" => 0, "G" => 0, "B" => 0)); /* Write the picture title */ $myPicture->setFontProperties(array("FontName" => "../fonts/Silkscreen.ttf", "FontSize" => 6)); $myPicture->drawText(10, 13, "pSurface() :: 2D surface charts", array("R" => 255, "G" => 255, "B" => 255)); /* Define the charting area */ $myPicture->setGraphArea(20, 40, 380, 380); $myPicture->drawFilledRectangle(20, 40, 380, 380, array("R" => 255, "G" => 255, "B" => 255, "Surrounding" => -200, "Alpha" => 20)); $myPicture->setShadow(TRUE, array("X" => 1, "Y" => 1)); /* Create the surface object */ $mySurface = new pSurface($myPicture); /* Set the grid size */ $mySurface->setGrid(20, 20); /* Write the axis labels */ $myPicture->setFontProperties(array("FontName" => "../fonts/pf_arma_five.ttf", "FontSize" => 6)); $mySurface->writeXLabels(array("Position" => LABEL_POSITION_BOTTOM)); $mySurface->writeYLabels(); /* Add random values */ for ($i = 0; $i <= 50; $i++) { $mySurface->addPoint(rand(0, 20), rand(0, 20), rand(0, 100)); } /* Compute the missing points */ $mySurface->computeMissing(); /* Draw the surface chart */ $mySurface->drawSurface(array("Border" => TRUE, "Surrounding" => 40)); /* Draw the contour with a threshold of 50 */ $mySurface->drawContour(50, array("R" => 0, "G" => 0, "B" => 0)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.surface.png");