; $aImg->FilledRectangle($this->iXPos,$this->iYPos,$this->iXPos+$width,$this->iYPos+$height); } // Stroke all cells $rpos=$this->iYPos; for($i=0; $i < $rc; ++$i) { $cpos=$this->iXPos; for($j=0; $j < $cc; ++$j) { // Calculate width and height of this cell if it is spanning // more than one column or row $cwidth=0; for( $k=0; $k < $this->iCells[$i][$j]->iColSpan; ++$k ) { $cwidth += $this->iColWidth[$j+$k]; } $cheight=0; for( $k=0; $k < $this->iCells[$i][$j]->iRowSpan; ++$k ) { $cheight += $this->iRowHeight[$i+$k]; } $this->iCells[$i][$j]->Stroke($aImg,$cpos,$rpos,$cwidth,$cheight); $cpos += $this->iColWidth[$j]; } $rpos += $this->iRowHeight[$i]; } // Stroke outer border $aImg->SetColor($this->iBorderColor); if( $this->iBorderWeight == 1 ) $aImg->Rectangle($this->iXPos,$this->iYPos,$this->iXPos+$width,$this->iYPos+$height); else { for( $i=0; $i < $this->iBorderWeight; ++$i ) $aImg->Rectangle($this->iXPos+$i,$this->iYPos+$i, $this->iXPos+$width-1+$this->iBorderWeight-$i, $this->iYPos+$height-1+$this->iBorderWeight-$i); } } } /* EOF */ ?> iFunc = $aFunc; $this->iXFunc = $aXFunc; } function E($aXMin,$aXMax,$aSteps=50) { $this->iMin = $aXMin; $this->iMax = $aXMax; $this->iStepSize = ($aXMax-$aXMin)/$aSteps; if( $this->iXFunc != '' ) $t = 'for($i='.$aXMin.'; $i<='.$aXMax.'; $i += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]='.$this->iXFunc.';}'; elseif( $this->iFunc != '' ) $t = 'for($x='.$aXMin.'; $x<='.$aXMax.'; $x += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]=$x;} $x='.$aXMax.';$ya[]='.$this->iFunc.';$xa[]=$x;'; else JpGraphError::RaiseL(24001);//('FuncGenerator : No function specified. '); @eval($t); // If there is an error in the function specifcation this is the only // way we can discover that. if( empty($xa) || empty($ya) ) JpGraphError::RaiseL(24002);//('FuncGenerator : Syntax error in function specification '); return array($xa,$ya); } } //============================================================================= // CLASS SymChar // Description: Code values for some commonly used characters that // normally isn't available directly on the keyboard, for example // mathematical and greek symbols. //============================================================================= class SymChar { function Get($aSymb,$aCapital=FALSE) { static $iSymbols = array( /* Greek */ array('alpha','03B1','0391'), array('beta','03B2','0392'), array('gamma','03B3','0393'), array('delta','03B4','0394'), array('epsilon','03B5','0395'), array('zeta','03B6','0396'), array('ny','03B7','0397'), array('eta','03B8','0398'), array('theta','03B8','0398'), array('iota','03B9','0399'), array('kappa','03BA','039A'), array('lambda','03BB','039B'), array('mu','03BC','039C'), array('nu','03BD','039D'), array('xi','03BE','039E'), array('omicron','03BF','039F'), array('pi','03C0','03A0'), array('rho','03C1','03A1'