קלאס גראף עוגה למערכות סקרים
סיימתי את זה לפני כמה שעות
הקוד:
קוד PHP:
<?
class graph {
var $Graph; var $Image; var $Angels; var $SliceCount; var $Slice; var $Colors;
function graph($width,$height) { $this->Graph["title"]=$title; $this->Graph["width"]=$width; $this->Graph["height"]=$height; header("Content-type: image/png"); $this->Image = @imagecreate($width, $height) or die("Cannot Initialize new GD image"); }
function makeTitle($title,$font) { $width=imagefontwidth($font); $height=imagefontheight($font); imagefilledpolygon($this->Image, array ( 65, 6, 65, (6+$height), (65+($width*strlen($title))+4), (6+$height), (65+($width*strlen($title))+4), 6 ), 4, $this->Colors["white"]); imagepolygon($this->Image, array ( 65, 6, 65, (6+$height), (65+($width*strlen($title))+4), (6+$height), (65+($width*strlen($title))+4), 6 ), 4, $this->Colors["black"]); imagestring($this->Image, $font, 68, 6, $title, $this->Colors["black"]); } function addVote($num,$vote,$r,$g,$b) { $this->Angels[$num]=$vote; $this->Colors[$num]=imagecolorallocate($this->Image, $r, $g, $b); } function graphBG($r,$g,$b) { $this->Colors[0]=imagecolorallocate($this->Image, $r, $g, $b); $this->Colors["black"] = imagecolorallocate($this->Image, 0, 0, 0); $this->Colors["white"] = imagecolorallocate($this->Image, 255, 255, 255); } function makeAngels() { $this->SliceCount=count($this->Angels); $ar_num_count=0; for ($i=1;$i<=$this->SliceCount;$i++) { $ar_num_count=$ar_num_count+$this->Angels[$i]; } $this->Slice=360/$ar_num_count; $count=0; }
function makeDeatils() { $x=10; $y=10; $z=0;
for ($i=1;$i<=$this->SliceCount;$i++) { $ar_num_count=$ar_num_count+$this->Angels[$i]; }
//÷åôñà âãåìä imagefilledpolygon($this->Image, array ( 6, 6, 5, (9+(15*$this->SliceCount)), 61, (9+(15*$this->SliceCount)), 61, 6 ), 4, $this->Colors["white"]); imagepolygon($this->Image, array ( 6, 6, 6, (9+(15*$this->SliceCount)), 61, (9+(15*$this->SliceCount)), 61, 6 ), 4, $this->Colors["black"]);
//÷åôñàåú ÷èðåú for ($i=1;$i<=$this->SliceCount;$i++) { imagefilledpolygon($this->Image, array ( $x, $y+$z, $x, ($y+10+$z), ($x+10), ($y+10+$z), ($x+10), $y+$z ), 4, $this->Colors[$i]); imagepolygon($this->Image, array ( $x, $y+$z, $x, ($y+10+$z), ($x+10), ($y+10+$z), ($x+10), $y+$z ), 4, $this->Colors["black"]);
$num=$this->Angels[$i]*100/$ar_num_count; imagestring($this->Image, 2, ($x+14), ($y+$z-1), round($num, 2)."%", $this->Colors["black"]);
$y+=10; $z+=5; } }
function drawAngels() { $c=0; for ($i=1;$i<=$this->SliceCount;$i++) { $x=$this->Slice*$this->Angels[$i]+$c; imagefilledarc($this->Image, $this->Graph["width"]/2, $this->Graph["height"]/2, $this->Graph["width"]*0.8, $this->Graph["height"]*0.8, $c, $x, $this->Colors[$i], IMG_ARC_PIE); $c=$x; } imageellipse($this->Image, $this->Graph["width"]/2, $this->Graph["height"]/2, $this->Graph["width"]*0.8, $this->Graph["height"]*0.8, $this->Colors["black"]); } function finish () { imagepng($this->Image); imagedestroy($this->Image); }
}
$bla=new graph(400,400); $bla->graphBG(255,255,200); $bla->makeTitle("What do you say about the site?",2); $bla->addVote(1, 23, 255, 0, 0); $bla->addVote(2, 24, 0, 0, 255); $bla->addVote(3, 25, 0, 255, 0); $bla->addVote(4, 26, 255, 0, 255); $bla->addVote(5, 155, 150, 150, 150); $bla->makeAngels(); $bla->drawAngels(); $bla->makeDeatils(); $bla->finish();
?>
אם מישהו רוצה לראות את זה www.yonatan.co.il/graph.php
קצת הסברים
קוד PHP:
<?
$bla=new graph(400,400); //יוצר גראף חדש בגודל 400 על 400 $bla->graphBG(255,255,200); //קובע את צבע הרקע של הגראף $bla->makeTitle("What do you say about the site?",2); //כותרת לגראף - לא חובה $bla->addVote(1, 23, 255, 0, 0); //מוסיף הצבעה חדשה //1=מספר התוצאה //23=מספר התשובות //255, 0, 0= צבע $bla->addVote(2, 24, 0, 0, 255); $bla->addVote(3, 25, 0, 255, 0); $bla->addVote(4, 26, 255, 0, 255); $bla->addVote(5, 155, 150, 150, 150); $bla->makeAngels(); //מחשב זוויות וכ'ו... $bla->drawAngels(); //מצייר את הגראף $bla->makeDeatils(); //יוצר את הריבוע הקטן עם הפרטים - לא חובה $bla->finish(); //מסיים את הגראף ?>
אשמח לשמוע ביקורות, איך הייתי יכול לשפר מה לא טוב וכ'ו...
_____________________________________
או כן או לא, מה שבטוח אולי, וגם זה מוטל בספק.
|