تالار گفتمان nCIS.ir

نسخه‌ی کامل: نمودار دایره ای با php
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و خسته نباشید به دوستان عزیز
من یه مقادیری دارم که میخوام با هاشون نمودار دایره ای ساده با php درست کنم.
مقادیر من به این شکل هستش.
34
19
27
91
17
41

من با استفاده از توابع gd خودم میتونم نمودار میله ای درست کنم.
ولی چون مشتری درخواست نمودار دایره ای کرده ، مجبورم نمودار دایره ای درست کنم.
تو اینترنت خیلی سرچ کردم و به کتابخونه های آماده پولی رسیدم.
خواستم ببینم برای ساخت نمودار دایره ای روش های ساده تری هم هستش.
آیا تابعی برای این کار وجود داره؟
آیا تا به حال نموددار دایره ای ساختین؟
ممنون میشم تو این زمینه راهنماییم کنین.
کار سختی نداره. شما فقط باید درصد هرکدوم رو نسبت به جمع کل مقادیر حساب کنید و بعد همون رو در 3.6 ضرب کنید تا بشه نسبت به 360 درجه. بعد با ImageArc کمان ترسیم کنید و با ImageFill داخل کمانها رو پر کنید.
(24-11-1394، 02:15 ب.ظ)ADMIN نوشته: [ -> ]کار سختی نداره. شما فقط باید درصد هرکدوم رو نسبت به جمع کل مقادیر حساب کنید و بعد همون رو در 3.6 ضرب کنید تا بشه نسبت به 360 درجه. بعد با ImageArc کمان ترسیم کنید و با ImageFill داخل کمانها رو پر کنید.


سلام و خسته نباشید به استاد عزیز
تشکر فراوان بابت راهنمایی
به این کد ی نگا میندازید.
بنا به گفته شما من با استفاده از توابع بالا تونستم دایره ایجاد کنم ولی نمیتونم داخل دایره هارو پر کنم.
ب نظرتون چطور میتون داخل دایره هارو پر کنم.
خیلی ممنون



$img = imagecreatetruecolor(200,200);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
imagearc($img, 100, 100, 200, 200,0,160,$red);
imagefill($img, 200,100, $green);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);

باید نقطه ای که برای ImageFill مشخص میکنید، داخل اون بخش از دایره قرار بگیره که کمان رو ترسیم کردین. برای این کار باید از نقطه شروع و پایان کمان خطی رو به مرکز دایره متصل کنید تا یک فضای بسته تولید بشه. البته من قصدم این بود که خودتون مستندات رو مطالعه کنید و به نتیجه برسین ولی گویا جواب نداد! این لینک رو بخونید (بخصوص مثالهاش رو) :
http://php.net/manual/en/function.imagefilledarc.php
(25-11-1394، 12:06 ب.ظ)ADMIN نوشته: [ -> ]باید نقطه ای که برای ImageFill مشخص میکنید، داخل اون بخش از دایره قرار بگیره که کمان رو ترسیم کردین. برای این کار باید از نقطه شروع و پایان کمان خطی رو به مرکز دایره متصل کنید تا یک فضای بسته تولید بشه. البته من قصدم این بود که خودتون مستندات رو مطالعه کنید و به نتیجه برسین ولی گویا جواب نداد! این لینک رو بخونید (بخصوص مثالهاش رو) :
http://php.net/manual/en/function.imagefilledarc.php

تشکر از استاد عزیز بابت راهنمایی ها
من نمودار رو ساختم.
میتونین استفاده کنین.
$image = imagecreatetruecolor(410, 410);
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);



$one=imagecolorallocate($image,206,12,12);
$two=imagecolorallocate($image,7,35,82);
$ten=imagecolorallocate($image,64,100,7);
$fore=imagecolorallocate($image,94,14,175);
$five=imagecolorallocate($image,134,13,53);
$six=imagecolorallocate($image,239,17,90);
$seven=imagecolorallocate($image,231,188,39);
$eight=imagecolorallocate($image,115,183,8);
$nine=imagecolorallocate($image,131,220,228);
$three=imagecolorallocate($image,32,207,184);
$eleven=imagecolorallocate($image,12,144,127);
$twoelv=imagecolorallocate($image,13,134,145);
$therteen=imagecolorallocate($image,16,76,174);
$forteen=imagecolorallocate($image,239,127,18);







imagefilledarc($image, 200, 200, 350, 350, 0      ,   3.6*30,$one,IMG_ARC_PIE);
imagefilledarc($image, 200, 200, 350, 350, 3.6*30  ,  3.6*40 ,$fore,IMG_ARC_PIE);
imagefilledarc($image, 200, 200, 350, 350, 3.6*40  ,  3.6*100,$three,IMG_ARC_PIE);


header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
خیلی خوب شده. برای راحتی بیشتر، این کد رو براتون نوشتم. امیدوارم بدردتون بخوره: لینک