멋진 PHP 데이터 원형 차트 효과 구현 코드를 생성하기 위한 디지털 신호 처리의 FPGA 구현

WBOY
풀어 주다: 2016-07-29 08:47:20
원래의
1226명이 탐색했습니다.

렌더링:
 打造超酷的PHP数据饼图效果实现代码
소스 코드:
[code]

// ------------------ - -----
//|pie3dfun.PHP//공용 함수
// -------------
define("ANGLE_STEP", 5); //타원호를 그릴 때 각도 단계 정의
function draw_getdarkcolor($img,$clr) //$clr에 해당하는 어두운 색상 찾기
{
$ rgb = imagecolorsforindex($img,$clr);
return array($rgb["red"]/2,$rgb["green"]/2,$rgb["blue"]/2) ;
}
function draw_getexy($a, $b, $d) //각도에 해당하는 타원의 점 좌표를 찾습니다.
{
$d = deg2rad($d);
return array(round($a*Cos($d)), round($b*Sin($d)))
}
function draw_arc($img,$ox,$oy, $a,$ b,$sd,$ed,$clr) //타원호 함수
{
$n = ceil(($ed-$sd)/ANGLE_STEP)
$d = $ sd;
list($x0,$y0) = draw_getexy($a,$b,$d)
for($i=0; $i<$n; $i )
{
$d = ($d ANGLE_STEP)>$ed?$ed:($d ANGLE_STEP)
list($x, $y) = draw_getexy($a, $b, $d); >imageline($ img, $x0 $ox, $y0 $oy, $x $ox, $y $oy, $clr)
$x0 = $x; >}
}
function draw_sector($img, $ox, $oy, $a, $b, $sd, $ed, $clr) //섹터 그리기
{
$n = ceil(($ed-$sd)/ANGLE_STEP);
$d = $sd;
list($x0,$y0) = draw_getexy($a, $b, $d); imageline($img, $x0 $ox, $y0 $oy, $ox, $oy, $clr)
for($i=0; $i<$n; $i )
{
$d = ( $d ANGLE_STEP)>$ed?$ed:($d ANGLE_STEP)
list($x, $y) = draw_getexy($a, $b, $d); imageline($img, $x0 $ox, $y0 $oy, $x $ox, $y $oy, $clr)
$x0 = $x; }
이미지라인($img, $x0 $ox, $y0 $oy, $ox, $oy, $clr)
list($x, $y) = draw_getexy($a/2, $b /2, ($ d $sd)/2)
imagefill($img, $x $ox, $y $oy, $clr)
}
function draw_sector3d($img, $ox , $oy, $ a, $b, $v, $sd, $ed, $clr) //3d 섹터
{
draw_sector($img, $ox, $oy, $a, $b, $sd, $ed , $clr)
if($sd<180)
{
list($R, $G, $B) = draw_getdarkcolor($img, $clr); >$clr=imagecolorallocate ($img, $R, $G, $B)
if($ed>180) $ed = 180;
list($sx, $sy) = draw_getexy($a ,$b,$sd);
$sx;
$sy = $oy;
list($ex, $ey) = draw_getexy($a, $b, $ed);
$ex = $ox;
$ey = $oy;
imageline($img, $sx, $sy, $sx, $sy $v, $clr); img, $ex, $ey, $ex, $ey $v, $clr)
draw_arc($img, $ox, $oy $v, $a, $b, $sd, $ed, $clr );
list($sx, $sy) = draw_getexy($a, $b, ($sd $ed)/2)
$sy = $oy $v/2; = $ox;
imagefill($img, $sx, $sy, $clr);
}
}
function draw_getindexcolor($img, $clr) //색상을 색인화하는 RBG
{
$R ​​= ($clr>>16) & 0xff
$G = ($clr>>8)& 0xff;
$B = ($clr) & 0xff; 🎜>return imagecolorallocate( $img, $R, $G, $B);
}
// 메인 함수를 그리고 그림을 출력합니다
// $datLst는 데이터 배열이고, $datLst는 레이블 배열, $datLst는 색상 배열입니다
//위 세 배열의 크기는 동일해야 합니다
function draw_img($datLst,$labLst,$clrLst,$a=250,$b=120, $v=20,$f
{
$ox = 5 $a;
$oy = 5 $b
$fw = imagefontwidth($font)
$fh = imagefontheight ($font);
$n = count($datLst);//데이터 항목 수
$w = 10 $a*2
$h = 10 $b*2 $v ($ fh 2)*$n;
$img = imagecreate($w, $h)
//RGB를 인덱스 색상으로 변환
for($i=0; $i<$n; $i )
$clrLst[$i] = draw_getindexcolor($img,$clrLst[$i])
$clrbk = imagecolorallocate($img, 0xff, 0xff, 0xff)
$clrt = imagecolorallocate( $img, 0x00, 0x00, 0x00);
//배경색 채우기
imagefill($img, 0, 0, $clrbk)
//Sum
$tot = 0; 🎜>for($i=0; $ i<$n; $i )
$tot = $datLst[$i]
$sd = 0
$ed = 0; >$ly = 10 $b*2 $ v
for($i=0; $i<$n; $i )
{
$sd = $ed
$ed; $datLst[$i]/$tot* 360;
//둥근 케이크 그리기
draw_sector3d($img, $ox, $oy, $a, $b, $v, $sd, $ed, $clrLst[$i]); //$ sd,$ed,$clrLst[$i]);
//라벨 그리기
imagefilled직사각형($img, 5, $ly, 5 $fw, $ly $fh, $clrLst[$i]);
이미지직사각형($img, 5, $ly, 5 $fw, $ly $fh, $clrt)
//imagestring($img, $font, 5 2*$fw, $ly, $labLst [$i].":".$datLst[$i]."(".(round(10000*($datLst[$i]/$tot))/100 )."%)", $clrt)
$str = iconv("GB2312", "UTF-8", $labLst[$i])
ImageTTFText($img, $font, 0, 5 2*$fw, $ly 13, $ clrt, "./simsun.ttf", $str.":".$datLst[$i]."(".(round(10000*($datLst[$i ]/$tot))/100)." %)");
$ly = $fh 2
}
//출력 그래픽
header("콘텐츠 유형: image/png ");
//생성된 이미지 출력
$imgFileName = "../temp/".time().".png";
imagepng($img,$imgFileName);
에코 '''''''''' '''''''''''''''''''''''''''''''''''' ''' '''''''''''
}
$datLst = array(30, 10, 20, 20, 10, 20, 10, 20); //data
$labLst = array("중국 과학 기술 대학", "안후이 대학 과학기술", "청화대학", "북경대학", "난징대학", "상하이대학", "호하이대학", "쑨원대학"); //Tag
$clrLst = array (0x99ff00, 0xff6666, 0x0099ff, 0xff99ff, 0xffff99 , 0x99ffff, 0xff3333, 0x009999);
//Draw
draw_img($datLst,$labLst,$clrLst)
?>

위 내용은 디지털 신호 처리의 FPGA 구현을 포함하여 멋진 PHP 데이터 파이 차트 효과 구현 코드를 만들기 위한 디지털 신호 처리의 FPGA 구현을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿