亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jpgraph_bar.php

?? asterisk用 的voip記費軟件
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
	    }	    elseif( $this->valuepos=='center' ) {		$y = ($pts[3] + $pts[1])/2;		$this->value->SetAlign('center','center');		$this->value->SetMargin(0);		$this->value->Stroke($img,$val,$x,$y);	    }	    elseif( $this->valuepos=='bottom' || $this->valuepos=='min' ) {		$y=$pts[1];		if( $img->a === 90 ) {		    if( $val < 0 )			$this->value->SetAlign('right','center');		    else			$this->value->SetAlign('left','center');		    		    		}		$this->value->SetMargin(3);		$this->value->Stroke($img,$val,$x,$y);	    }	    else {		JpGraphError::Raise('Unknown position for values on bars :'.$this->valuepos);	    }	    // Create the client side image map	    $rpts = $img->ArrRotate($pts);			    $csimcoord=round($rpts[0]).", ".round($rpts[1]);	    for( $j=1; $j < 4; ++$j){		$csimcoord .= ", ".round($rpts[2*$j]).", ".round($rpts[2*$j+1]);	    }	    	    	    if( !empty($this->csimtargets[$i]) ) {		$this->csimareas .= '<area shape="poly" coords="'.$csimcoord.'" ';    	    		$this->csimareas .= " href=\"".$this->csimtargets[$i]."\"";		if( !empty($this->csimalts[$i]) ) {		    $sval=sprintf($this->csimalts[$i],$this->coords[0][$i]);		    $this->csimareas .= " alt=\"$sval\" title=\"$sval\" ";		}		$this->csimareas .= ">\n";	    }	}	return true;    }} // Class//===================================================// CLASS GroupBarPlot// Description: Produce grouped bar plots//===================================================class GroupBarPlot extends BarPlot {    var $plots;    var $width=0.7;    var $nbrplots=0;    var $numpoints;//---------------// CONSTRUCTOR    function GroupBarPlot($plots) {	$this->plots = $plots;	$this->nbrplots = count($plots);	if( $this->nbrplots < 1 ) {	    JpGraphError::Raise('You must have at least one barplot in the array to be able to create a Grouped Bar Plot.');	}	$this->numpoints = $plots[0]->numpoints;    }//---------------// PUBLIC METHODS	    function Legend(&$graph) {	$n = count($this->plots);	for($i=0; $i < $n; ++$i) {	    $c = strtolower(get_class($this->plots[$i]));	    $sc = is_subclass_of($this->plots[$i],'BarPlot') || is_subclass_of($this->plots[$i],'barplot');	    if( $c !== 'barplot' && !$sc ) {		JpGraphError::Raise('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the Group Bar plot from an array of BarPlot or AccBarPlot objects. (Class = '.$c.')');	    }	    $this->plots[$i]->DoLegend($graph);	}    }	    function Min() {	list($xmin,$ymin) = $this->plots[0]->Min();	$n = count($this->plots);	for($i=0; $i < $n; ++$i) {	    list($xm,$ym) = $this->plots[$i]->Min();	    $xmin = max($xmin,$xm);	    $ymin = min($ymin,$ym);	}	return array($xmin,$ymin);		    }	    function Max() {	list($xmax,$ymax) = $this->plots[0]->Max();	$n = count($this->plots);	for($i=0; $i < $n; ++$i) {	    list($xm,$ym) = $this->plots[$i]->Max();	    $xmax = max($xmax,$xm);	    $ymax = max($ymax,$ym);	}	return array($xmax,$ymax);    }	    function GetCSIMareas() {	$n = count($this->plots);	$csimareas='';	for($i=0; $i < $n; ++$i) {	    $csimareas .= $this->plots[$i]->csimareas;	}	return $csimareas;    }	    // Stroke all the bars next to each other    function Stroke(&$img,&$xscale,&$yscale) { 	$tmp=$xscale->off;	$n = count($this->plots);	$subwidth = $this->width/$this->nbrplots ; 	for( $i=0; $i < $n; ++$i ) {	    $this->plots[$i]->ymin=$this->ybase;	    $this->plots[$i]->SetWidth($subwidth);	    	    // If the client have used SetTextTickInterval() then	    // major_step will be > 1 and the positioning will fail.	    // If we assume it is always one the positioning will work	    // fine with a text scale but this will not work with	    // arbitrary linear scale	    $xscale->off = $tmp+$i*round(/*$xscale->ticks->major_step* */					 $xscale->scale_factor*$subwidth);	    $this->plots[$i]->Stroke($img,$xscale,$yscale);	}	$xscale->off=$tmp;    }} // Class//===================================================// CLASS AccBarPlot// Description: Produce accumulated bar plots//===================================================class AccBarPlot extends BarPlot {    var $plots=null,$nbrplots=0,$numpoints=0;//---------------// CONSTRUCTOR    function AccBarPlot($plots) {	$this->plots = $plots;	$this->nbrplots = count($plots);	$this->numpoints = $plots[0]->numpoints;			$this->value = new DisplayValue();    }//---------------// PUBLIC METHODS	    function Legend(&$graph) {	$n = count($this->plots);	for( $i=$n-1; $i >= 0; --$i ) {	    $c = strtolower(get_class($this->plots[$i]));	    if( $c !== 'barplot' ) {		JpGraphError::Raise('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects.(Class='.$c.')');	    }	    	    $this->plots[$i]->DoLegend($graph);	}    }    function Max() {	list($xmax) = $this->plots[0]->Max();	$nmax=0;	for($i=0; $i<count($this->plots); ++$i) {	    $n = count($this->plots[$i]->coords[0]);	    $nmax = max($nmax,$n);	    list($x) = $this->plots[$i]->Max();	    $xmax = max($xmax,$x);	}	for( $i = 0; $i < $nmax; $i++ ) {	    // Get y-value for bar $i by adding the	    // individual bars from all the plots added.	    // It would be wrong to just add the	    // individual plots max y-value since that	    // would in most cases give to large y-value.	    $y=0;	    if( $this->plots[0]->coords[0][$i] > 0 )		$y=$this->plots[0]->coords[0][$i];	    for( $j = 1; $j < $this->nbrplots; $j++ ) {		if( $this->plots[$j]->coords[0][$i] > 0 )		    $y += $this->plots[$j]->coords[0][$i];	    }	    $ymax[$i] = $y;	}	$ymax = max($ymax);	// Bar always start at baseline	if( $ymax <= $this->ybase ) 	    $ymax = $this->ybase;	return array($xmax,$ymax);    }    function Min() {	$nmax=0;	list($xmin,$ysetmin) = $this->plots[0]->Min();	for($i=0; $i<count($this->plots); ++$i) {	    $n = count($this->plots[$i]->coords[0]);	    $nmax = max($nmax,$n);	    list($x,$y) = $this->plots[$i]->Min();	    $xmin = Min($xmin,$x);	    $ysetmin = Min($y,$ysetmin);	}	for( $i = 0; $i < $nmax; $i++ ) {	    // Get y-value for bar $i by adding the	    // individual bars from all the plots added.	    // It would be wrong to just add the	    // individual plots max y-value since that	    // would in most cases give to large y-value.	    $y=$this->plots[0]->coords[0][$i];	    for( $j = 1; $j < $this->nbrplots; $j++ ) {		$y += $this->plots[ $j ]->coords[0][$i];	    }	    $ymin[$i] = $y;	}	$ymin = Min($ysetmin,Min($ymin));	// Bar always start at baseline	if( $ymin >= $this->ybase )	    $ymin = $this->ybase;	return array($xmin,$ymin);    }    // Stroke acc bar plot    function Stroke(&$img,&$xscale,&$yscale) {	$pattern=NULL;	$img->SetLineWeight($this->weight);	for($i=0; $i < $this->numpoints-1; $i++) {	    $accy = 0;	    $accy_neg = 0; 	    for($j=0; $j < $this->nbrplots; ++$j ) {					    		$img->SetColor($this->plots[$j]->color);		if ( $this->plots[$j]->coords[0][$i] >= 0) {		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);		    $accyt=$yscale->Translate($accy);		    $accy+=$this->plots[$j]->coords[0][$i];		}		else {		    //if ( $this->plots[$j]->coords[0][$i] < 0 || $accy_neg < 0 ) {		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);		    $accyt=$yscale->Translate($accy_neg);		    $accy_neg+=$this->plots[$j]->coords[0][$i];		}										$xt=$xscale->Translate($i);		if( $this->abswidth > -1 )		    $abswidth=$this->abswidth;		else		    $abswidth=round($this->width*$xscale->scale_factor,0);				$pts=array($xt,$accyt,$xt,$yt,$xt+$abswidth,$yt,$xt+$abswidth,$accyt);		if( $this->bar_shadow ) {		    $ssh = $this->bar_shadow_hsize;		    $ssv = $this->bar_shadow_vsize;		    		    // We must also differ if we are a positive or negative bar. 		    if( $j === 0 ) {			// This gets extra complicated since we have to			// see all plots to see if we are negative. It could			// for example be that all plots are 0 until the very			// last one. We therefore need to save the initial setup			// for both the negative and positive case			// In case the final bar is positive			$sp[0]=$pts[6]+1; $sp[1]=$pts[7];			$sp[2]=$pts[6]+$ssh; $sp[3]=$pts[7]-$ssv;			// In case the final bar is negative			$nsp[0]=$pts[0]; $nsp[1]=$pts[1];			$nsp[2]=$pts[0]+$ssh; $nsp[3]=$pts[1]-$ssv;			$nsp[4]=$pts[6]+$ssh; $nsp[5]=$pts[7]-$ssv;			$nsp[10]=$pts[6]+1; $nsp[11]=$pts[7];		    }		    if( $j === $this->nbrplots-1 ) {			// If this is the last plot of the bar and			// the total value is larger than 0 then we			// add the shadow.			if( is_array($this->bar_shadow_color) ) {			    $numcolors = count($this->bar_shadow_color);			    if( $numcolors == 0 ) {				JpGraphError::Raise('You have specified an empty array for shadow colors in the bar plot.');			    }			    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);			}			else {			    $img->PushColor($this->bar_shadow_color);			}			if( $accy > 0 ) {			    $sp[4]=$pts[4]+$ssh; $sp[5]=$pts[5]-$ssv;			    $sp[6]=$pts[2]+$ssh; $sp[7]=$pts[3]-$ssv;			    $sp[8]=$pts[2]; $sp[9]=$pts[3]-1;			    $sp[10]=$pts[4]+1; $sp[11]=$pts[5];			    $img->FilledPolygon($sp,4);			}			elseif( $accy_neg < 0 ) {			    $nsp[6]=$pts[4]+$ssh; $nsp[7]=$pts[5]-$ssv;			    $nsp[8]=$pts[4]+1; $nsp[9]=$pts[5];			    $img->FilledPolygon($nsp,4);			}			$img->PopColor();		    }		}		// If value is NULL or 0, then don't draw a bar at all		if ($this->plots[$j]->coords[0][$i] == 0 ) continue;		if( $this->plots[$j]->grad ) {		    $grad = new Gradient($img);		    $grad->FilledRectangle(			$pts[2],$pts[3],			$pts[6],$pts[7],			$this->plots[$j]->grad_fromcolor,			$this->plots[$j]->grad_tocolor,			$this->plots[$j]->grad_style);						} else {		    if (is_array($this->plots[$j]->fill_color) ) {			$numcolors = count($this->plots[$j]->fill_color);			$img->SetColor($this->plots[$j]->fill_color[$i % $numcolors]);		    }		    else {			$img->SetColor($this->plots[$j]->fill_color);		    }		    $img->FilledPolygon($pts);		    $img->SetColor($this->plots[$j]->color);		}				  		// Stroke the pattern		if( $this->plots[$j]->iPattern > -1 ) {		    if( $pattern===NULL ) 			$pattern = new RectPatternFactory();				    $prect = $pattern->Create($this->plots[$j]->iPattern,$this->plots[$j]->iPatternColor,1);		    $prect->SetDensity($this->plots[$j]->iPatternDensity);		    if( $this->plots[$j]->coords[0][$i] < 0 ) {			$rx = $pts[0];			$ry = $pts[1];		    }		    else {			$rx = $pts[2];			$ry = $pts[3];		    }		    $width = abs($pts[4]-$pts[0])+1;		    $height = abs($pts[1]-$pts[3])+1;		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));		    $prect->Stroke($img);		}		// CSIM array		if( $i < count($this->plots[$j]->csimtargets) ) {		    // Create the client side image map		    $rpts = $img->ArrRotate($pts);				    $csimcoord=round($rpts[0]).", ".round($rpts[1]);		    for( $k=1; $k < 4; ++$k){			$csimcoord .= ", ".round($rpts[2*$k]).", ".round($rpts[2*$k+1]);		    }	    	    		    if( ! empty($this->plots[$j]->csimtargets[$i]) ) {			$this->csimareas.= '<area shape="poly" coords="'.$csimcoord.'" '; 			$this->csimareas.= " href=\"".$this->plots[$j]->csimtargets[$i]."\"";			if( !empty($this->plots[$j]->csimalts[$i]) ) {			    $sval=sprintf($this->plots[$j]->csimalts[$i],$this->plots[$j]->coords[0][$i]);			    $this->csimareas .= " alt=\"$sval\" title=\"$sval\" ";			}			$this->csimareas .= ">\n";						    }		}		$pts[] = $pts[0];		$pts[] = $pts[1];		$img->Polygon($pts);	    }			    // Draw labels for each acc.bar		    $x=$pts[2]+($pts[4]-$pts[2])/2;	    if($this->bar_shadow) $x += $ssh;	    // First stroke the accumulated value for the entire bar	    // This value is always placed at the top/bottom of the bars	    if( $accy_neg < 0 ) {		$y=$yscale->Translate($accy_neg);					$this->value->Stroke($img,$accy_neg,$x,$y);	    }	    else {		$y=$yscale->Translate($accy);					$this->value->Stroke($img,$accy,$x,$y);	    }	    $accy = 0;	    $accy_neg = 0; 	    for($j=0; $j < $this->nbrplots; ++$j ) {			// We don't print 0 values in an accumulated bar plot		if( $this->plots[$j]->coords[0][$i] == 0 ) continue;					if ($this->plots[$j]->coords[0][$i] > 0) {		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);		    $accyt=$yscale->Translate($accy);		    if(  $this->plots[$j]->valuepos=='center' ) {			$y = $accyt-($accyt-$yt)/2;		    }		    elseif( $this->plots[$j]->valuepos=='bottom' ) {			$y = $accyt;		    }		    else { // top or max			$y = $accyt-($accyt-$yt);		    }		    $accy+=$this->plots[$j]->coords[0][$i];		    if(  $this->plots[$j]->valuepos=='center' ) {			$this->plots[$j]->value->SetAlign("center","center");			$this->plots[$j]->value->SetMargin(0);		    }		    elseif( $this->plots[$j]->valuepos=='bottom' ) {			$this->plots[$j]->value->SetAlign('center','bottom');			$this->plots[$j]->value->SetMargin(2);		    }		    else {			$this->plots[$j]->value->SetAlign('center','top');			$this->plots[$j]->value->SetMargin(1);		    }		} else {		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);		    $accyt=$yscale->Translate($accy_neg);		    $accy_neg+=$this->plots[$j]->coords[0][$i];		    if(  $this->plots[$j]->valuepos=='center' ) {			$y = $accyt-($accyt-$yt)/2;		    }		    elseif( $this->plots[$j]->valuepos=='bottom' ) {			$y = $accyt;		    }		    else {			$y = $accyt-($accyt-$yt);		    }		    if(  $this->plots[$j]->valuepos=='center' ) {			$this->plots[$j]->value->SetAlign("center","center");			$this->plots[$j]->value->SetMargin(0);		    }		    elseif( $this->plots[$j]->valuepos=='bottom' ) {			$this->plots[$j]->value->SetAlign('center',$j==0 ? 'bottom':'top');			$this->plots[$j]->value->SetMargin(-2);		    }		    else {			$this->plots[$j]->value->SetAlign('center','bottom');			$this->plots[$j]->value->SetMargin(-1);		    }		}			$this->plots[$j]->value->Stroke($img,$this->plots[$j]->coords[0][$i],$x,$y);	    }	}	return true;    }} // Class/* EOF */?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品一区二区三区不卡| 亚洲日穴在线视频| 亚洲色欲色欲www| 免费成人av资源网| 91久久精品一区二区三| 亚洲精品一区二区三区影院| 最新国产成人在线观看| 激情文学综合丁香| 欧美精品在线观看播放| 亚洲欧美自拍偷拍色图| 精品一区二区在线看| 欧日韩精品视频| 自拍视频在线观看一区二区| 黄页网站大全一区二区| 欧美一区二区三区的| 亚洲一区二区三区爽爽爽爽爽 | 欧美四级电影网| 国产精品电影院| 国产高清精品在线| 91精品视频网| 日本美女一区二区三区| 欧美日韩一级黄| 亚洲美女视频在线观看| 99精品欧美一区| 国产日产欧美一区二区三区| 麻豆91精品91久久久的内涵| 欧美麻豆精品久久久久久| 亚洲最大成人网4388xx| 91美女在线视频| 亚洲人成伊人成综合网小说| 95精品视频在线| 一区二区三区在线免费观看| 99在线视频精品| 亚洲欧美视频一区| 在线免费精品视频| 亚洲一区二区三区小说| 欧美精品免费视频| 男男成人高潮片免费网站| 欧美一区二区免费视频| 看片网站欧美日韩| 2021久久国产精品不只是精品| 精品一区二区三区在线观看| 精品成人免费观看| 国产99精品国产| 亚洲欧美一区二区三区久本道91| 色狠狠色噜噜噜综合网| 亚洲国产一区在线观看| 日韩一区二区电影网| 久久国产尿小便嘘嘘| 国产亚洲一区二区三区在线观看| 国产成人无遮挡在线视频| 国产精品久久免费看| 色婷婷久久久综合中文字幕| 午夜精品久久久久久久99樱桃| 欧美一区二区三区在线观看视频| 伦理电影国产精品| 欧美国产激情一区二区三区蜜月| 91女厕偷拍女厕偷拍高清| 亚洲激情图片小说视频| 欧美一区二区女人| 成人毛片视频在线观看| 亚洲综合久久久| 精品国产网站在线观看| 成人a免费在线看| 日韩国产在线一| 欧美激情艳妇裸体舞| 欧美肥妇bbw| 国产a级毛片一区| 亚洲aⅴ怡春院| 亚洲国产岛国毛片在线| 欧美日韩免费在线视频| 国产成人精品午夜视频免费| 亚洲午夜激情av| 国产拍欧美日韩视频二区| 91.com在线观看| 91色porny蝌蚪| 久久成人精品无人区| 亚洲一区在线播放| 日本一区二区在线不卡| 91精品国产综合久久香蕉的特点| 东方欧美亚洲色图在线| 日本不卡免费在线视频| 亚洲精品视频一区| 久久久久久久网| 欧美精品一二三| 91在线云播放| 国产一区日韩二区欧美三区| 亚洲综合色噜噜狠狠| 中文字幕一区二区三区不卡| 欧美成人一区二区三区片免费 | 亚洲欧美另类久久久精品2019| 欧美一区二区不卡视频| 色综合中文综合网| 中文字幕乱码一区二区免费| 91麻豆精品国产91久久久资源速度| 成人高清视频免费观看| 麻豆精品国产91久久久久久| 午夜国产不卡在线观看视频| 亚洲精品网站在线观看| 欧美极品xxx| 国产日韩精品一区二区三区 | 国产精品成人网| 国产视频一区二区三区在线观看| 日韩亚洲欧美成人一区| 欧美日韩精品一区二区三区 | 91美女在线看| 91免费在线看| 一本一本久久a久久精品综合麻豆| 国产黄色精品视频| 国产精品综合av一区二区国产馆| 日日骚欧美日韩| 午夜精品久久久久久久久| 午夜不卡av免费| 日韩和欧美一区二区| 男男视频亚洲欧美| 九九久久精品视频 | 亚洲资源中文字幕| 亚洲另类一区二区| 亚洲精品乱码久久久久| 亚洲欧美色图小说| 亚洲另类春色校园小说| 亚洲国产精品天堂| 视频一区中文字幕| 久久国产免费看| 粉嫩aⅴ一区二区三区四区五区| 粉嫩av一区二区三区粉嫩| www.综合网.com| 在线观看免费成人| 69堂精品视频| 久久一二三国产| 国产精品欧美经典| 亚洲午夜三级在线| 免费人成网站在线观看欧美高清| 久久97超碰色| 成人av集中营| 欧美三区在线观看| 欧美刺激午夜性久久久久久久| 久久人人97超碰com| 国产精品国产三级国产专播品爱网| 亚洲日本电影在线| 日韩电影免费在线看| 国产精品小仙女| 色婷婷av一区二区三区大白胸| 欧美日本视频在线| 日本一区二区三区在线观看| 亚洲精品高清在线观看| 青青草精品视频| 成人午夜激情在线| 欧美精品v日韩精品v韩国精品v| 日韩欧美国产一区二区三区 | 日本欧美一区二区三区| 国产精品69久久久久水密桃| 91成人看片片| 国产亚洲一区二区三区在线观看| 亚洲精品久久久蜜桃| 国产一区二区三区美女| 色天使色偷偷av一区二区| 精品免费日韩av| 夜夜亚洲天天久久| 国产一区二区福利视频| 欧美在线高清视频| 中文字幕欧美激情一区| 奇米亚洲午夜久久精品| 一本到不卡精品视频在线观看 | 久久97超碰色| 欧美日韩国产成人在线免费| 中文av一区特黄| 久久99国产精品久久| 欧美日韩成人综合| 国产精品国产三级国产aⅴ中文| 久久精品国产久精国产| 在线观看www91| 国产精品国产三级国产有无不卡 | 色欧美片视频在线观看| 久久久久久一二三区| 视频在线在亚洲| 欧美性猛片xxxx免费看久爱| 中文字幕久久午夜不卡| 国内精品久久久久影院色| 欧美日韩国产a| 一区二区三区在线免费视频| 不卡av在线免费观看| 久久久久久久网| 国产在线播精品第三| 日韩一区二区免费在线电影| 亚洲图片自拍偷拍| 色婷婷精品久久二区二区蜜臂av| 国产精品国产三级国产aⅴ原创| 国产大陆亚洲精品国产| 精品久久久久久久久久久久包黑料 | 日韩va亚洲va欧美va久久| 在线亚洲高清视频| 亚洲一线二线三线视频| 色综合久久久网| 亚洲特级片在线| 91理论电影在线观看| 亚洲卡通欧美制服中文| 欧美在线999| 亚洲国产欧美日韩另类综合 | 久久久久九九视频|