Ce Code Est il Utile?



  • Bon voilà un Code que j'ai fait moi meme pour faire afficher les resultats de Voting sous forme d'un demi cercle avec le pourcentage qu'on lui passe par la methode GET
    bon c'est assez siple à installer il faut juste le mettre dans un page nommé par exemple resultats.php et puis dans la page à y afficher la resultat (biensur après les calcul ordinaire et tout) on l'integre de cette façon
    <img src="resultats.php?pr=n"> or n est la pourcentage par exemple pour afficher 60 on fait <img src="resultats.php?pr=60">
    Ce n'est bien optimisé mais bon …
    Le code PHP

    <?
    
    //Ce Script est Realisé par JANI WAEL ARAFET
    //Veuillez l'utiliser librement mais SVP veuillez Garder ces lignes sans changement
    
    header ("Content-type: image/png");
    $pr=$_GET[pr];
    if(!$pr)
    {
        $pr=0;
    }
    $round=round($pr);
        $largeurImage = 450;
        $hauteurImage = 231;
        $im = @ImageCreate ($largeurImage, $hauteurImage)
                or die ("Erreur lors de la création de l'image");
        $blanc = ImageColorAllocate ($im, 255, 255, 255);
        $noir = ImageColorAllocate ($im, 0, 0, 0);
        $noi = ImageColorAllocate ($im, 72,72,72);
        $bleu = ImageColorAllocate ($im, 0, 0, 255);
        $or = ImageColorAllocate ($im, 255, 191, 0);
        $ora = ImageColorAllocate ($im, 255, 77, 0);
        $roug = ImageColorAllocate ($im, 225, 0, 22);
        if($pr <=100 and $pr >= 0)
        {
    $t=$pr*(M_PI/100);
    $pt=array();
    for ($i=0; $i<=100;$i++)
    {
    $an=$i*(M_PI/100);
    $vy=230-(sin($an)*200);
    $vx=210+cos($an)*200;
    array_push($pt,$vx);
    array_push($pt,$vy);
    }
    $nbb=count($pt)/2;
    ImagePolygon ($im,$pt,$nbb, $noir) or die('ERROR');
    for ($i=0; $i<=100;$i++)
    {
    $an=$i*(M_PI/100);
    $vy=230-(sin($an)*200.5);
    $vx=210+cos($an)*200.5;
    array_push($pt,$vx);
    array_push($pt,$vy);
    }
    $nbb=count($pt)/2;
    ImagePolygon ($im,$pt,$nbb, $noir) or die('ERROR');
    for ($i=0; $i<=($pr-1);$i++)
    {
    $an=$i*(M_PI/100);
    $vy=230-(sin($an)*200);
    $vx=210+cos(M_PI-$an)*200;
    $an=($i+1)*(M_PI/100);
    $vy1=230-(sin($an)*200);
    $vx1=210+cos(M_PI-$an)*200;
    $pt=array(210,230,$vx,$vy,$vx1,$vy1);
    $tt = ImageColorAllocate ($im, 255-((59/100)*$i),206-((206/100)*$i),60-((60/100)*$i));
    if($i<$pr)
    {
    ImageFilledPolygon ($im,$pt,3,$tt);
    }
    }
    if($pr == 0)
    {
    $an =0;
    }
    $yyg=230-(sin($an)*200);
    $xxg=210+cos(M_PI-$an)*200;
    $pt=array();
    for ($i=0; $i<=100;$i++)
    {
    $an=$i*(M_PI/100);
    $vy=230-(sin($an)*200);
    $vx=210+cos($an)*200;
    array_push($pt,$vx);
    array_push($pt,$vy);
    }
    $nbb=count($pt)/2;
    ImagePolygon ($im,$pt,$nbb, $noir) or die('ERROR');
    for ($i=0; $i<=100;$i++)
    {
    $an=$i*(M_PI/100);
    $vy=230-(sin($an)*200.5);
    $vx=210+cos($an)*200.5;
    array_push($pt,$vx);
    array_push($pt,$vy);
    }
    $nbb=count($pt)/2;
    ImagePolygon ($im,$pt,$nbb, $noir) or die('ERROR');
    
    if($vx>30)
    {
        $vv=$vx-25;
    }
    else
    {
        $vv=$vx+25;
    }
    $po=0;
    
    if($round % 10 < 7 and $round % 10 > 2)
    {
    $yy2=230-(sin($t)*220);
    $xx2=210+cos(M_PI-$t)*220;
    }
    elseif($round % 10 >= 7 )
    {
    $yy2=230-(sin($t)*190);
    $xx2=210+cos(M_PI-$t)*220;
    }
    elseif($round >= 25)
    {
        $yy2=230-(sin($t)*190);
    $xx2=210+cos(M_PI-$t)*240;
    }
    else
    {
    $yy2=230-(sin($t)*240);
    $xx2=210+cos(M_PI-$t)*220;
    }
    if($round <9)
    {
        $xx2=$xx2=210+cos(M_PI-$t)*200;
    }
    if($round % 10 != 0)
    {
    ImageString ($im, 5,$xx2,$yy2,"$round%",$roug);
    }
    for ($i=$po;$i<=100;$i=$i+10)
    {
    $t1=$i*(M_PI/100);
    $yy=230-(sin($t1)*200);
    $xx=210+cos(M_PI-$t1)*200;
    $yy1=230-(sin($t1)*190);
    $xx1=210+cos(M_PI-$t1)*190;
    if($i !=100)
    {
    $yy2=230-(sin($t1)*220);
    $xx2=210+cos(M_PI-$t1)*220;
    }
    if($i==100)
    {
    $yy2=230-(sin($t1)*250)-15;
    $xx2=210+cos(M_PI-$t1)*209;
    }
    elseif($i <=10)
    {
    $yy2=230-(sin($t1)*220);
    $xx2=210+cos(M_PI-$t1)*220;
    }
    imageline ($im,$xx,$yy,$xx1,$yy1,$bleu);
    
    ImageString ($im, 5,$xx2,$yy2,"$i%",$bleu);
    }
    }
    
    else
    {
        ImageString ($im,20,$largeurImage/2-150,$hauteurImage/2,"La pourcentage est incompatible!!",$noir);
    }
    imageline ($im,210,230,$xxg,$yyg,$bleu);
    ImageString ($im,5,1,210,"0%",$bleu);
    ImagePng ($im);
    ?> 
    

    voilà un exemple

    Alors comment vous le trouvez utile? je sais bien il doit etre plus optimisé mais ….! :?



  • Si tu l'a fait toi-même, il ne peut qu'être utile :)
    Par contre, je pense que tu devrais le commenter un peu plus et y rajouter les indentations.
    Après, au niveau technique, il existe plusieurs librairies qui génère des graphiques (regarde du coté d'Artichow, ou un truc de ce style).

    Poste-le également dans la Wiki de freeheberg, je me sens un peu seul :p


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.