<?php
    
// Récupération des valeurs à tracer
    
$valeurs preg_split("/;/"$_SERVER['argv'][0]);
    
// Constantes
    
$margegauche 55;
    
$margedroite 20;
    
$margehaute 20;
    
$margebas 60;
    
$largeur 400;
    
$hauteur 200;
    
$nb_participants 18;
    
$score_minimal 0;
    
$score_maximal 100;
    
$min $score_minimal;
    
$max $score_maximal;
    
$deltay $hauteur/($max-$min);
    
$deltax $largeur/$nb_participants;
    
// Création de l'image
    
Header("Content-type: image/png");
    
$im = @ImageCreate ($largeur+$margegauche+$margedroite,
        
$hauteur+$margebas+$margehaute);
    
$background_color ImageColorAllocate ($im255255255);
    
$text_color ImageColorAllocate ($im000);
    
$trait_color ImageColorAllocate ($im00255);
    
// Dessin des axes
    
ImageLine($im$margegauche$margehaute$margegauche,
        
$hauteur+$margehaute$text_color);
    
ImageLine($im$margegauche$hauteur+$margehaute,
        
$margegauche+$largeur$hauteur+$margehaute$text_color);
    
// Graduation sur l'axe des x
    
$nbpts $nb_participants;
    for (
$i 1$i <= $nbpts$i++) {
        
ImageString ($im2floor($margegauche+$i $largeur/$nbpts-10),
            
$hauteur+$margehaute+10"$i"$text_color);
    }
    
ImageString ($im3floor($largeur/2),
        
$hauteur+$margehaute+floor($margebas/2),
        
"Place finale"$text_color);
    
// Graduation sur l'axe des y
    
$nbpts 10;
    for (
$i 0$i <= $nbpts$i++) {
        
$n floor($min+($max-$min)/$nbpts $i);
        
ImageString ($im2$margegauche-20,
            
floor($hauteur-8-$i $hauteur/$nbpts)+$margehaute,
            
"$n"$text_color);
    }
    
ImageStringUp ($im3floor($margegauche/2)-20$margebas+floor($hauteur/2),
        
"Probabilite"$text_color);
    
// Tracé de la courbe
    
$valp 0;
    for (
$i 1$i <= $nb_participants$i++) {
        
$vali $valeurs[$i-1];
        
$y $hauteur floor($min+$vali $deltay) + $margehaute;
        
$x $margegauche floor($i $deltax) - 8;
        if (
$vali != 0) {
            
ImageFilledRectangle($im$x-1$y-1$x+1$y+1$trait_color);
            if (
$valp != 0) {
                
ImageLine ($im$xp$yp$x$y$trait_color);
            }
        }
        
$valp $vali;
        
$xp $x;
        
$yp $y;
    }
    
// Génération de l'image et fin
    
ImagePng($im);
    
ImageDestroy($im);
?>