Pages : 1
#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
Dernière modification par Marcelo (Le 02/06/2010, à 10:09)
Vive le monde libre !!
Hors ligne