From 409bbdf07c5c4503e6319233c85a9d8e5b625c5f Mon Sep 17 00:00:00 2001 From: Fernando Ontiveros Date: Tue, 9 Oct 2012 12:57:01 -0400 Subject: [PATCH] CODE STYLE class.pmGauge.php --- workflow/engine/classes/class.pmGauge.php | 483 +++++++++++----------- 1 file changed, 245 insertions(+), 238 deletions(-) diff --git a/workflow/engine/classes/class.pmGauge.php b/workflow/engine/classes/class.pmGauge.php index 30280f7fe..c690f05f3 100755 --- a/workflow/engine/classes/class.pmGauge.php +++ b/workflow/engine/classes/class.pmGauge.php @@ -1,238 +1,246 @@ -h = $this->w / 2; - $im = imagecreatetruecolor($this->w, $this->h); - $width = $this->w; - $height = $this->h; - $center_x = intval($width / 2); - $center_y = intval($height / 2); - - //gauge color - $bgcolor = ImageColorAllocate($im, 247, 247, 247); - $extRing = ImageColorAllocate($im, 214, 214, 214); - $blueRing = ImageColorAllocate($im, 70, 132, 238); - $blueRingLine = ImageColorAllocate($im, 106, 114, 127); - $arrowBody = ImageColorAllocate($im, 228, 114, 86); - $arrowLine = ImageColorAllocate($im, 207, 74, 42); - $redArc = ImageColorAllocate($im, 220, 57, 18); - $yellowArc = ImageColorAllocate($im, 255, 153, 0); - - $black = ImageColorAllocate($im, 0,0,0); - $white = ImageColorAllocate($im, 255, 255, 255); - $gray = ImageColorAllocate($im, 190, 190, 190); - - $fontArial = PATH_THIRDPARTY . 'html2ps_pdf/fonts/arial.ttf'; - - ImageFilledRectangle($im, 0, 0, $width-1, $height-1, $white); - ImageRectangle ($im, 0, 0, $width-1, $height-1, $gray); - +h = $this->w / 2; + $im = imagecreatetruecolor( $this->w, $this->h ); + $width = $this->w; + $height = $this->h; + $center_x = intval( $width / 2 ); + $center_y = intval( $height / 2 ); + + //gauge color + $bgcolor = ImageColorAllocate( $im, 247, 247, 247 ); + $extRing = ImageColorAllocate( $im, 214, 214, 214 ); + $blueRing = ImageColorAllocate( $im, 70, 132, 238 ); + $blueRingLine = ImageColorAllocate( $im, 106, 114, 127 ); + $arrowBody = ImageColorAllocate( $im, 228, 114, 86 ); + $arrowLine = ImageColorAllocate( $im, 207, 74, 42 ); + $redArc = ImageColorAllocate( $im, 220, 57, 18 ); + $yellowArc = ImageColorAllocate( $im, 255, 153, 0 ); + + $black = ImageColorAllocate( $im, 0, 0, 0 ); + $white = ImageColorAllocate( $im, 255, 255, 255 ); + $gray = ImageColorAllocate( $im, 190, 190, 190 ); + + $fontArial = PATH_THIRDPARTY . 'html2ps_pdf/fonts/arial.ttf'; + + ImageFilledRectangle( $im, 0, 0, $width - 1, $height - 1, $white ); + ImageRectangle( $im, 0, 0, $width - 1, $height - 1, $gray ); + + //center coords + $cX = intval( $this->w / 2 ); + //$cX = intval($this->w /4); + $cY = intval( $this->h / 2 ); + + //diameter for gauge + $diameter = intval( $this->h * 4 / 5 ); + + $this->renderGauge( $im, $cX, $cY, $diameter ); + + /* //center coords - $cX = intval($this->w /2); - //$cX = intval($this->w /4); - $cY = intval($this->h /2); - + $cX = intval($this->w * 3/4); + $cY = intval($this->h /2); + //diameter for gauge $diameter = intval( $this->h * 4/5 ); $this->renderGauge($im, $cX, $cY, $diameter); - -/* - //center coords - $cX = intval($this->w * 3/4); - $cY = intval($this->h /2); - - //diameter for gauge - $diameter = intval( $this->h * 4/5 ); - - $this->renderGauge($im, $cX, $cY, $diameter); -*/ - Header("Content-type: image/png"); - ImagePng($im); - - } - - function renderGauge($im, $cX, $cY, $diameter) { - //gauge color - $bgcolor = ImageColorAllocate($im, 247, 247, 247); - $extRing = ImageColorAllocate($im, 214, 214, 214); - $blueRing = ImageColorAllocate($im, 70, 132, 238); - $blueRingLine = ImageColorAllocate($im, 106, 114, 127); - $arrowBody = ImageColorAllocate($im, 228, 114, 86); - $arrowLine = ImageColorAllocate($im, 207, 74, 42); - $redArc = ImageColorAllocate($im, 220, 57, 18); - $yellowArc = ImageColorAllocate($im, 255, 153, 0); - $greenArc = ImageColorAllocate($im, 0, 136, 0); - - $black = ImageColorAllocate($im, 0,0,0); - $white = ImageColorAllocate($im, 255, 255, 255); - $gray = ImageColorAllocate($im, 190, 190, 190); - - $fontArial = PATH_THIRDPARTY . 'html2ps_pdf/fonts/arial.ttf'; - - $dX = intval($diameter *8/7 ); //for now ratio aspect is 8:7 - $dY = intval($diameter); - $dXRing = intval($dX * 0.90); - $dYRing = intval($dY * 0.90); - - $dXRingColor = intval($dX * 0.86); - $dYRingColor = intval($dY * 0.86); - - $dXRingCenter = intval($dX * 0.66); - $dYRingCenter = intval($dY * 0.66); - - imagefilledellipse($im, $cX, $cY, $dX, $dY, $extRing); - - imagefilledellipse($im, $cX, $cY, $dXRing, $dYRing, $bgcolor); - - //drawing the red arc - if ( $this->redFrom > $this->maxValue ) $this->redFrom = $this->maxValue; - if ( $this->redTo > $this->maxValue ) $this->redTo = $this->maxValue; - if ( $this->yellowFrom > $this->maxValue ) $this->yellowFrom = $this->maxValue; - if ( $this->yellowTo > $this->maxValue ) $this->yellowTo = $this->maxValue; - if ( $this->greenFrom > $this->maxValue ) $this->greenFrom = $this->maxValue; - if ( $this->greenTo > $this->maxValue ) $this->greenTo = $this->maxValue; - - $redFrom = $this->redFrom/$this->maxValue*300 - 240 ; - $redTo = $this->redTo/$this->maxValue*300 - 240; - $yellowFrom = $this->yellowFrom/$this->maxValue*300 - 240; - $yellowTo = $this->yellowTo/$this->maxValue*300 - 240; - $greenFrom = $this->greenFrom/$this->maxValue*300 - 240; - $greenTo = $this->greenTo/$this->maxValue*300 - 240; - - if ( $this->redFrom != $this->redTo || $this->redTo != $this->maxValue ) { - imagefilledarc ($im, $cX, $cY, $dXRingColor, $dYRingColor, $redFrom, $redTo, $redArc, IMG_ARC_PIE ); - } - if ( $this->yellowFrom != $this->yellowTo || $this->yellowTo != $this->maxValue ) { - imagefilledarc ($im, $cX, $cY, $dXRingColor, $dYRingColor, $yellowFrom, $yellowTo, $yellowArc, IMG_ARC_PIE ); - } - if ( $this->greenFrom != $this->greenTo || $this->greenTo != $this->maxValue ) { - imagefilledarc ($im, $cX, $cY, $dXRingColor, $dYRingColor, $greenFrom, $greenTo, $greenArc, IMG_ARC_PIE ); - } - imagefilledellipse($im, $cX, $cY, $dXRingCenter, $dYRingCenter, $bgcolor); - - //ticks - $radiusX = intval($dX * 0.42); - $radiusY = intval($dY * 0.42); - $min = 5; - while($min <= 55) { - if ($min % 5 == 0) - $len = $radiusX / 8; - else - $len = $radiusX / 25; - - $ang = (2 * M_PI * $min) / 60; - $x1 = sin($ang) * ($radiusX - $len) + $cX; - $y1 = cos($ang) * ($radiusY - $len) + $cY; - $x2 = sin($ang) * $radiusX + $cX; - $y2 = cos($ang) * $radiusY + $cY; - - ImageLine($im, $x1, $y1, $x2, $y2, $black); - - - if ($min % 5 == 0) { - $textToDisplay = sprintf("%d", (55-$min)*$this->maxValue/50 ); - $bbox = imagettfbbox(8, 0, $fontArial, $textToDisplay ); - $x1 = sin($ang) * ($radiusX - 2.5*$len) + $cX - $bbox[4] / 2; - $y1 = cos($ang) * ($radiusY - 2.5*$len) + $cY +2;// - abs($bbox[5]); - imagettftext ( $im, 8, 0, $x1, $y1, $gray, $fontArial, $textToDisplay ); - } - $min++; - } - - if (trim($this->centerLabel) != '' ) { - $textToDisplay = trim($this->centerLabel); - $bbox = imagettfbbox(8, 0, $fontArial, $textToDisplay ); - $x1 = $cX - $bbox[4] / 2; - $y1 = $cY *3/4 + abs($bbox[5]); - imagettftext ( $im, 8, 0, $x1, $y1, $black, $fontArial, $textToDisplay ); - } - - imagettftext ( $im, 9, 0, $cX*0.60, $cY*1.8, $gray, $fontArial, $this->open ); - imagettftext ( $im, 9, 0, $cX*1.40, $cY*1.8, $gray, $fontArial, $this->completed ); - - - //drawing the arrow, simple way - $radiusX = intval($dX * 0.35); - $radiusY = intval($dY * 0.35); - - $ang = - M_PI/6 + 2*M_PI - ( 2 * M_PI * $this->value )*50/60 /$this->maxValue ; - $x1 = sin($ang) * ($radiusX) + $cX; - $y1 = cos($ang) * ($radiusY) + $cY; - ImageLine($im, $cX, $cY, $x1, $y1, $arrowLine); - - /* +*/ + Header( "Content-type: image/png" ); + ImagePng( $im ); + + } + + function renderGauge ($im, $cX, $cY, $diameter) + { + //gauge color + $bgcolor = ImageColorAllocate( $im, 247, 247, 247 ); + $extRing = ImageColorAllocate( $im, 214, 214, 214 ); + $blueRing = ImageColorAllocate( $im, 70, 132, 238 ); + $blueRingLine = ImageColorAllocate( $im, 106, 114, 127 ); + $arrowBody = ImageColorAllocate( $im, 228, 114, 86 ); + $arrowLine = ImageColorAllocate( $im, 207, 74, 42 ); + $redArc = ImageColorAllocate( $im, 220, 57, 18 ); + $yellowArc = ImageColorAllocate( $im, 255, 153, 0 ); + $greenArc = ImageColorAllocate( $im, 0, 136, 0 ); + + $black = ImageColorAllocate( $im, 0, 0, 0 ); + $white = ImageColorAllocate( $im, 255, 255, 255 ); + $gray = ImageColorAllocate( $im, 190, 190, 190 ); + + $fontArial = PATH_THIRDPARTY . 'html2ps_pdf/fonts/arial.ttf'; + + $dX = intval( $diameter * 8 / 7 ); //for now ratio aspect is 8:7 + $dY = intval( $diameter ); + $dXRing = intval( $dX * 0.90 ); + $dYRing = intval( $dY * 0.90 ); + + $dXRingColor = intval( $dX * 0.86 ); + $dYRingColor = intval( $dY * 0.86 ); + + $dXRingCenter = intval( $dX * 0.66 ); + $dYRingCenter = intval( $dY * 0.66 ); + + imagefilledellipse( $im, $cX, $cY, $dX, $dY, $extRing ); + + imagefilledellipse( $im, $cX, $cY, $dXRing, $dYRing, $bgcolor ); + + //drawing the red arc + if ($this->redFrom > $this->maxValue) + $this->redFrom = $this->maxValue; + if ($this->redTo > $this->maxValue) + $this->redTo = $this->maxValue; + if ($this->yellowFrom > $this->maxValue) + $this->yellowFrom = $this->maxValue; + if ($this->yellowTo > $this->maxValue) + $this->yellowTo = $this->maxValue; + if ($this->greenFrom > $this->maxValue) + $this->greenFrom = $this->maxValue; + if ($this->greenTo > $this->maxValue) + $this->greenTo = $this->maxValue; + + $redFrom = $this->redFrom / $this->maxValue * 300 - 240; + $redTo = $this->redTo / $this->maxValue * 300 - 240; + $yellowFrom = $this->yellowFrom / $this->maxValue * 300 - 240; + $yellowTo = $this->yellowTo / $this->maxValue * 300 - 240; + $greenFrom = $this->greenFrom / $this->maxValue * 300 - 240; + $greenTo = $this->greenTo / $this->maxValue * 300 - 240; + + if ($this->redFrom != $this->redTo || $this->redTo != $this->maxValue) { + imagefilledarc( $im, $cX, $cY, $dXRingColor, $dYRingColor, $redFrom, $redTo, $redArc, IMG_ARC_PIE ); + } + if ($this->yellowFrom != $this->yellowTo || $this->yellowTo != $this->maxValue) { + imagefilledarc( $im, $cX, $cY, $dXRingColor, $dYRingColor, $yellowFrom, $yellowTo, $yellowArc, IMG_ARC_PIE ); + } + if ($this->greenFrom != $this->greenTo || $this->greenTo != $this->maxValue) { + imagefilledarc( $im, $cX, $cY, $dXRingColor, $dYRingColor, $greenFrom, $greenTo, $greenArc, IMG_ARC_PIE ); + } + imagefilledellipse( $im, $cX, $cY, $dXRingCenter, $dYRingCenter, $bgcolor ); + + //ticks + $radiusX = intval( $dX * 0.42 ); + $radiusY = intval( $dY * 0.42 ); + $min = 5; + while ($min <= 55) { + if ($min % 5 == 0) + $len = $radiusX / 8; + else + $len = $radiusX / 25; + + $ang = (2 * M_PI * $min) / 60; + $x1 = sin( $ang ) * ($radiusX - $len) + $cX; + $y1 = cos( $ang ) * ($radiusY - $len) + $cY; + $x2 = sin( $ang ) * $radiusX + $cX; + $y2 = cos( $ang ) * $radiusY + $cY; + + ImageLine( $im, $x1, $y1, $x2, $y2, $black ); + + if ($min % 5 == 0) { + $textToDisplay = sprintf( "%d", (55 - $min) * $this->maxValue / 50 ); + $bbox = imagettfbbox( 8, 0, $fontArial, $textToDisplay ); + $x1 = sin( $ang ) * ($radiusX - 2.5 * $len) + $cX - $bbox[4] / 2; + $y1 = cos( $ang ) * ($radiusY - 2.5 * $len) + $cY + 2; // - abs($bbox[5]); + imagettftext( $im, 8, 0, $x1, $y1, $gray, $fontArial, $textToDisplay ); + } + $min ++; + } + + if (trim( $this->centerLabel ) != '') { + $textToDisplay = trim( $this->centerLabel ); + $bbox = imagettfbbox( 8, 0, $fontArial, $textToDisplay ); + $x1 = $cX - $bbox[4] / 2; + $y1 = $cY * 3 / 4 + abs( $bbox[5] ); + imagettftext( $im, 8, 0, $x1, $y1, $black, $fontArial, $textToDisplay ); + } + + imagettftext( $im, 9, 0, $cX * 0.60, $cY * 1.8, $gray, $fontArial, $this->open ); + imagettftext( $im, 9, 0, $cX * 1.40, $cY * 1.8, $gray, $fontArial, $this->completed ); + + //drawing the arrow, simple way + $radiusX = intval( $dX * 0.35 ); + $radiusY = intval( $dY * 0.35 ); + + $ang = - M_PI / 6 + 2 * M_PI - (2 * M_PI * $this->value) * 50 / 60 / $this->maxValue; + $x1 = sin( $ang ) * ($radiusX) + $cX; + $y1 = cos( $ang ) * ($radiusY) + $cY; + ImageLine( $im, $cX, $cY, $x1, $y1, $arrowLine ); + + /* //arrowLine $arrowHeight = intval($dY * 0.02); $arrowWidth = intval($dX * 0.35); $arrowTail = intval($dX * 0.15); $values = array( - 0, -$arrowHeight, - -$arrowTail, 0, + 0, -$arrowHeight, + -$arrowTail, 0, 0, $arrowHeight, - $arrowWidth, 0, + $arrowWidth, 0, 0, -$arrowHeight ); - + //rotate n degrees $n = 20; $ang = (2 * M_PI * $n) / 60; - + foreach ( $values as $k => $val ) { if ( $k % 2 == 0 ) { //$values[$k] = sin($ang)*$val + 20; @@ -246,25 +254,24 @@ $values[$k] += $cY; } } - + imagefilledpolygon ($im, $values, 5, $arrowBody); imagepolygon ($im, $values, 5, $arrowLine); - */ - //blue ring - $dXBlueRing = $dX * 0.07; - $dYBlueRing = $dY * 0.07; - imagefilledellipse($im, $cX, $cY, $dXBlueRing, $dXBlueRing, $blueRing); - imageellipse ($im, $cX, $cY, $dXBlueRing, $dYBlueRing, $blueRingLine); - - imageellipse ($im, $cX, $cY, $dX, $dY, $black); - - $textToDisplay = sprintf ( "%5.2f%%", $this->value ); - $bbox = imagettfbbox(9, 0, $fontArial, $textToDisplay ); - $centerX = $cX - $bbox[4] / 2; - $centerY = $cY+$dYRing/2+3-abs($bbox[5]); - imagettftext ( $im, 9, 0, $centerX, $centerY, $black, $fontArial, $textToDisplay ); - - - } - + */ + //blue ring + $dXBlueRing = $dX * 0.07; + $dYBlueRing = $dY * 0.07; + imagefilledellipse( $im, $cX, $cY, $dXBlueRing, $dXBlueRing, $blueRing ); + imageellipse( $im, $cX, $cY, $dXBlueRing, $dYBlueRing, $blueRingLine ); + + imageellipse( $im, $cX, $cY, $dX, $dY, $black ); + + $textToDisplay = sprintf( "%5.2f%%", $this->value ); + $bbox = imagettfbbox( 9, 0, $fontArial, $textToDisplay ); + $centerX = $cX - $bbox[4] / 2; + $centerY = $cY + $dYRing / 2 + 3 - abs( $bbox[5] ); + imagettftext( $im, 9, 0, $centerX, $centerY, $black, $fontArial, $textToDisplay ); + + } + } \ No newline at end of file