رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمودار دایره ای با php
#1
سلام و خسته نباشید به دوستان عزیز
من یه مقادیری دارم که میخوام با هاشون نمودار دایره ای ساده با php درست کنم.
مقادیر من به این شکل هستش.
34
19
27
91
17
41

من با استفاده از توابع gd خودم میتونم نمودار میله ای درست کنم.
ولی چون مشتری درخواست نمودار دایره ای کرده ، مجبورم نمودار دایره ای درست کنم.
تو اینترنت خیلی سرچ کردم و به کتابخونه های آماده پولی رسیدم.
خواستم ببینم برای ساخت نمودار دایره ای روش های ساده تری هم هستش.
آیا تابعی برای این کار وجود داره؟
آیا تا به حال نموددار دایره ای ساختین؟
ممنون میشم تو این زمینه راهنماییم کنین.
پاسخ
تشکر شده توسط:
#2
کار سختی نداره. شما فقط باید درصد هرکدوم رو نسبت به جمع کل مقادیر حساب کنید و بعد همون رو در 3.6 ضرب کنید تا بشه نسبت به 360 درجه. بعد با ImageArc کمان ترسیم کنید و با ImageFill داخل کمانها رو پر کنید.
پاسخ
تشکر شده توسط: olampiad , abdollah110110
#3
(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);

پاسخ
تشکر شده توسط: abdollah110110
#4
باید نقطه ای که برای ImageFill مشخص میکنید، داخل اون بخش از دایره قرار بگیره که کمان رو ترسیم کردین. برای این کار باید از نقطه شروع و پایان کمان خطی رو به مرکز دایره متصل کنید تا یک فضای بسته تولید بشه. البته من قصدم این بود که خودتون مستندات رو مطالعه کنید و به نتیجه برسین ولی گویا جواب نداد! این لینک رو بخونید (بخصوص مثالهاش رو) :
http://php.net/manual/en/function.imagefilledarc.php
پاسخ
تشکر شده توسط: abdollah110110
#5
(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);
پاسخ
تشکر شده توسط: abdollah110110
#6
خیلی خوب شده. برای راحتی بیشتر، این کد رو براتون نوشتم. امیدوارم بدردتون بخوره: لینک
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان