Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/06/2010, à 09:57

Marcelo

[PHP] logiciel éducatif de géométrie

Bonjour à tous,
Je dois réaliser un petit logiciel éducatif niveau 6ème de géométrie (exercices sur les angles, obtus, aigus, plat,...) je n'en suis qu'au début, voilà mon souci un "triangle" à deux côtés pour former l'angle est crée et qui peut prendre une valeur d'angle aléatoire, en fonction de la place qu'il va prendre dans l'image de départ je dois savoir ou je pourrais le déplacer pour que son origine ne reste pas toujours au milieu et donc par la suite déstabiliser l'enfant et oui faut bien compliquer la chose... On m'a donné l'idée de vérifier cela grâce à un rectangle c'est astucieux mais comment aller plus loin je l'ai crée pour donner une idée...
voici le code pour l'instant : (angle.php appel image.php)

angle.php
<?php
    $cx = 500; //taille de l'image
    $cy = 500;
   
    $angle1 = rand(0,50); //angle abscisse/premier vecteur
    $angle2 = rand(0,360); //angle abscisse/deuxieme vecteur
   
    $angle = $angle2-$angle1; //calcul de l'angle premier vecteur/deuxieme vecteur
    if($angle < 0)
    {
        $angle = $angle + 360;
    }
   
    $x_orig = 250; //origine
    $y_orig = 250;
   
    $x_dest = 250*cos($angle1*pi()/180)+250; //coordonnees de destination des vecteurs
    $y_dest = -250*sin($angle1*pi()/180)+250;
    $x_dest2 = 250*cos($angle2*pi()/180)+250;
    $y_dest2 = -250*sin($angle2*pi()/180)+250;
   
    $x_max = max($x_orig, $x_dest, $x_dest2); //valeurs max et min des coordonnees
    $y_max = max($y_orig, $y_dest, $y_dest2);
    $x_min = min($x_orig, $x_dest, $x_dest2);
    $y_min = min($y_orig, $y_dest, $y_dest2);

    echo "<img src=image.php?cx=$cx&cy=$cy&xo=$x_orig&yo=$y_orig&xd=$x_dest&yd=$y_dest&xd2=$x_dest2&yd2=$y_dest2&angle1=$angle1&angle2=$angle2&xm=$x_max&ym=$y_max&xmi=$x_min&ymi=$y_min> <br />";

    echo "Angle : $angle";
?>

image.php
<?php
    $cx = $_GET['cx'];
    $cy = $_GET['cy'];
    $xo = $_GET['xo'];
    $yo = $_GET['yo'];
    $xd = $_GET['xd'];
    $yd = $_GET['yd'];
    $xd2 = $_GET['xd2'];
    $yd2 = $_GET['yd2'];
    $angle1 = $_GET['angle1'];
    $angle2 = $_GET['angle2'];
    $x_max = $_GET['xm'];
    $y_max = $_GET['ym'];
    $x_min = $_GET['xmi'];
    $y_min= $_GET['ymi'];
   
    $coordonnees = array ($cx,$cy,$xo,$yo,$xd,$yd,$xd2,$yd2);
    foreach ($coordonnees as &$value)
    {
        if(isset($value))
        {
        }
        else
        {
            exit;
        }
    }
   
    header("Content-type: image/png");   
    $image = imagecreatetruecolor($cx,$cy);
    // Allocation de quelques couleurs
    $white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
    $gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
    $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
    $navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
    $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
    $red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
    $darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);
   
    ImageSetThickness ($image, 4); //taille des traits
   
    imageline($image,$xo,$yo,$xd,$yd,$white); //premier vecteur
    imageline($image,$xo,$yo,$xd2,$yd2,$red); //deuxieme vecteur
    imagearc($image,$xo,$yo,100,100,-$angle2,-$angle1, $red); //designe l'angle
    imagefilledellipse($image,$xo,$yo,5,5,$red);// Création du point du sommet
   
    imagerectangle($image, $x_min, $y_min, $x_max, $y_max, $red);
   
    imagepng($image);
    imagedestroy($image);
?>
Un grand merci si quelqu'un peut m'apporter pistes ou précision wink

Dernière modification par Marcelo (Le 02/06/2010, à 10:09)


Vive le monde libre !!

Hors ligne