exo2849
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| exo2849 [08/09/2010 21:03] – lzamo | exo2849 [30/07/2026 19:07] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Exemple d' | ||
| - | {{ : | ||
| - | Cet article montre, sur un exemple, comment créer un exercice mathenpoche en utilisant instrumenpoche. L' | ||
| - | L' | ||
| - | |||
| - | * un triangle aléatoire apparaît, | ||
| - | * des instruments virtuels de géométrie sont disponibles | ||
| - | * on demande à l' | ||
| - | |||
| - | Si les noms des sommets et leurs emplacements sont aléatoires, | ||
| - | |||
| - | - la médiatrice d'un côté donné | ||
| - | - la médiane relative à un côté donné | ||
| - | - la hauteur issue d'un sommet | ||
| - | - la bissectrice issue d'un sommet | ||
| - | - la hauteur relative à un côté | ||
| - | ===== Préparation ===== | ||
| - | {{ : | ||
| - | Il faut créer un fichier flash .fla, télécharger tous les fichiers externes nécessaires à la création d'un exercice en respectant l' | ||
| - | |||
| - | Pour instrumenpoche, | ||
| - | |||
| - | ===== Image 1 ===== | ||
| - | Le code à mettre en image 1 et les explications pour ce qui concerne instrumenpoche. | ||
| - | |||
| - | ==== Le script ==== | ||
| - | <code actionscript> | ||
| - | // | ||
| - | //** Ce qu'il y a à personnaliser est là : NE PAS TOUCHER AU RESTE ... la suite en frame 3 ! ** | ||
| - | // | ||
| - | var nomDeLexo: | ||
| - | var nomDeLAide: | ||
| - | var nombreDeQuestions: | ||
| - | var nombreDeChances: | ||
| - | //la liste des boutons de l'exo : | ||
| - | var liste_boutons: | ||
| - | // | ||
| - | var oncharge_calc: | ||
| - | // | ||
| - | var oncharge_tep: | ||
| - | |||
| - | /** | ||
| - | Tout ce qui concerne iep (sauf le tableau des clips à charger) se trouve ici | ||
| - | **/ | ||
| - | // | ||
| - | var oncharge_iep: | ||
| - | |||
| - | var iep_parametres: | ||
| - | iep_parametres.liste_instruments =new Array(" | ||
| - | iep_parametres.boutons_geo = new Array(" | ||
| - | iep_parametres.boutons_lecteur = new Array(" | ||
| - | iep_parametres.options_point_fixe = true; | ||
| - | iep_parametres.options_crayon_droite = true ; | ||
| - | iep_parametres.bord_bas = 275; | ||
| - | iep_parametres.mode = " | ||
| - | var instrumenpoche = _root.createEmptyMovieClip(" | ||
| - | instrumenpoche._x=2000; | ||
| - | //FIN IEP | ||
| - | |||
| - | |||
| - | // | ||
| - | // | ||
| - | // | ||
| - | // | ||
| - | // | ||
| - | // | ||
| - | //clip accueillant les constantes : NE PAS CHANGER LE NOM !!! | ||
| - | _root.createEmptyMovieClip(" | ||
| - | _root.exoMeP.createEmptyMovieClip(" | ||
| - | // | ||
| - | //le loading au niveau 1 | ||
| - | var loading = _root.exoMeP.clips_externes.createEmptyMovieClip(" | ||
| - | _root.loading._x = 735/2; | ||
| - | _root.loading._y = 450/2; | ||
| - | //les formats au niveau 2 | ||
| - | var formats = _root.exoMeP.clips_externes.createEmptyMovieClip(" | ||
| - | //les fonctions au niveau 3 | ||
| - | var fonctions = _root.exoMeP.clips_externes.createEmptyMovieClip(" | ||
| - | //le fond au niveau 4 | ||
| - | var fond = _root.exoMeP.clips_externes.createEmptyMovieClip(" | ||
| - | //la boite de dialogue finale au ninveau 98 | ||
| - | var boite = _root.createEmptyMovieClip(" | ||
| - | //boite._x = 200; | ||
| - | //boite._y = 30; | ||
| - | //les fonctions de pilotage des outils au ninveau 97 | ||
| - | var pilotage = _root.createEmptyMovieClip(" | ||
| - | |||
| - | var traduction = _root.createEmptyMovieClip(" | ||
| - | ////////////////////////////////////////////////////////////////// | ||
| - | |||
| - | //on définit les clips externes à charger et leur cible | ||
| - | clips_a_charger = new Array( | ||
| - | [" | ||
| - | [" | ||
| - | [" | ||
| - | [" | ||
| - | [" | ||
| - | [" | ||
| - | [" | ||
| - | // | ||
| - | [" | ||
| - | |||
| - | charger_clips(clips_a_charger); | ||
| - | |||
| - | //fonction de chargement multiple | ||
| - | var mcl = new Object(); | ||
| - | var ecouteur_chargement = new MovieClipLoader(); | ||
| - | // l' | ||
| - | mcl.onLoadStart = function (cible_mc) { | ||
| - | trace(" | ||
| - | charger =false; | ||
| - | } | ||
| - | mcl.onLoadComplete = function (cible_mc) { | ||
| - | trace(cible_mc+" | ||
| - | charger=true; | ||
| - | } | ||
| - | mcl.onLoadError = function (cible_mc, codeErreur) { | ||
| - | trace(" | ||
| - | charger=true; | ||
| - | } | ||
| - | ecouteur_chargement.addListener(mcl); | ||
| - | var charger = true; | ||
| - | function charger_clips(tableau: | ||
| - | // | ||
| - | var n = tableau.length; | ||
| - | var c = 0; | ||
| - | | ||
| - | | ||
| - | clip = tableau[c][0]; | ||
| - | trace(clip) | ||
| - | if (!((String(clip).indexOf(" | ||
| - | and (oncharge_iep == false)) and !((String(clip).indexOf(" | ||
| - | and (oncharge_tep == false)) and !((String(clip).indexOf(" | ||
| - | and (oncharge_calc == false))) { | ||
| - | ecouteur_chargement.loadClip(tableau[c][0], | ||
| - | } | ||
| - | c++; | ||
| - | }if (c >n) { | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | // | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | |||
| - | } | ||
| - | var onpatiente: | ||
| - | //permet de savoir si on a fini de patienter ou non | ||
| - | // permet de temporiser pendant nbsec secondes avant de passer à la fonction suivante (tipe=1) | ||
| - | // ou le temps d' | ||
| - | // REMPLACE les CHRONO | ||
| - | function onattend(tipe, | ||
| - | function attenddeuxsecondes() { | ||
| - | var arrivee = new Date(); | ||
| - | var secondesa = arrivee.getSeconds(); | ||
| - | if (secondesa> | ||
| - | var secondes = secondesa-secondesd; | ||
| - | } else { | ||
| - | var secondes = Number(secondesa)+(60-secondesd); | ||
| - | } | ||
| - | if (secondes> | ||
| - | if (tipe == 0) { | ||
| - | onpatiente = false; | ||
| - | clearInterval(kattend); | ||
| - | } | ||
| - | if (tipe == 1) { | ||
| - | clearInterval(kattend); | ||
| - | fonctions.avance(); | ||
| - | } | ||
| - | if (tipe == 2) { | ||
| - | clearInterval(kattend); | ||
| - | _level100._visible = true; | ||
| - | correction(); | ||
| - | fonctions.activer_bouton(" | ||
| - | } | ||
| - | } else { | ||
| - | return true; | ||
| - | } | ||
| - | } | ||
| - | var kattend = setInterval(attenddeuxsecondes, | ||
| - | var depart = new Date(); | ||
| - | var secondesd = depart.getSeconds(); | ||
| - | } | ||
| - | stop(); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ==== Explications pour iep ==== | ||
| - | La partie concernant instrumenpoche est regroupée vers le début du script : | ||
| - | <code actionscript> | ||
| - | /** | ||
| - | Tout ce qui concerne iep (sauf le tableau des clips à charger) se trouve ici | ||
| - | **/ | ||
| - | // | ||
| - | var oncharge_iep: | ||
| - | |||
| - | var iep_parametres: | ||
| - | iep_parametres.liste_instruments =new Array(" | ||
| - | iep_parametres.boutons_geo = new Array(" | ||
| - | iep_parametres.boutons_lecteur = new Array(" | ||
| - | iep_parametres.options_point_fixe = true; | ||
| - | iep_parametres.options_crayon_droite = true ; | ||
| - | iep_parametres.bord_bas = 275; | ||
| - | iep_parametres.mode = " | ||
| - | var instrumenpoche = _root.createEmptyMovieClip(" | ||
| - | instrumenpoche._x=2000; | ||
| - | //FIN IEP | ||
| - | </ | ||
| - | |||
| - | Elle débute par | ||
| - | <code actionscript> | ||
| - | qui indique à l' | ||
| - | <code actionscript> | ||
| - | // | ||
| - | var oncharge_calc: | ||
| - | // | ||
| - | var oncharge_tep: | ||
| - | </ | ||
| - | |||
| - | Ensuite, il faut configurer instrumenpoche, | ||
| - | <code actionscript> | ||
| - | </ | ||
| - | avec quelques boutons supplémentaires dans la partie géométrie : | ||
| - | <code actionscript> | ||
| - | </ | ||
| - | Pour la correction, on prévoit de donner accès aux boutons essentiels de lecture d'une animation : | ||
| - | <code actionscript> | ||
| - | </ | ||
| - | À noter que ces trois tableaux donnent des listes de boutons dans un certain ordre. Si on veut permuter les boutons de la règle et de l' | ||
| - | |||
| - | Pendant la période de développement, | ||
| - | |||
| - | Ensuite viennent différentes options : | ||
| - | <code actionscript> | ||
| - | qui empêche que les points placés dans instrumenpoche soient déplacés à la souris. En effet, dans cet exercice, l' | ||
| - | |||
| - | <code actionscript> | ||
| - | va faire en sorte que les tracés au crayon soient des " | ||
| - | |||
| - | <code actionscript> | ||
| - | limite la zone de dessin d' | ||
| - | |||
| - | <code actionscript> | ||
| - | très important. '' | ||
| - | |||
| - | <code actionscript> | ||
| - | Création du clip dans lequel mathenpoche va charger iep.swf. Le niveau 92 est réservé à instrumenpoche dans mathenpoche, | ||
| - | **Attention** : ne pas nommer le clip '' | ||
| - | |||
| - | <code actionscript> | ||
| - | On place le clip de chargement hors de la scène par souci d' | ||
| - | |||
| - | ===== Image 3 ===== | ||
| - | Le script contenu dans l' | ||
| - | ==== Mise en place de l' | ||
| - | Un code habituel dans les exercices de mathenpoche, | ||
| - | <code actionscript> | ||
| - | fonctions.initialiser_exo(); | ||
| - | fonctions.viderMovieClips(); | ||
| - | </ | ||
| - | |||
| - | Ensuite, on génère trois lettres au hasard (les noms des sommets du triangle) et trois points également aléatoires. Ce code n'est pas spécifique à intrumenpoche, | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | <code actionscript> | ||
| - | // on choisit trois lettres de l' | ||
| - | code = []; | ||
| - | for (i=1; i<4; i++) { | ||
| - | code[i] = random(26)+65; | ||
| - | for (j=1; j<i; j++) { | ||
| - | if (code[i] == code[j]) { | ||
| - | i = i-1; | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | var lettre1 = String.fromCharCode(code[1]); | ||
| - | var lettre2 = String.fromCharCode(code[2]); | ||
| - | var lettre3 = String.fromCharCode(code[3]); | ||
| - | |||
| - | // | ||
| - | ok = false; | ||
| - | while (ok == false) { | ||
| - | ok = true; | ||
| - | x = random(100)+50; | ||
| - | xa = 365-x; | ||
| - | xb = 365+x; | ||
| - | e = random(2)+1; | ||
| - | p = Math.pow(-1, | ||
| - | xc = p*random(100)+365; | ||
| - | ya = 140+random(50)+p*30; | ||
| - | yb = 140+random(50)-p*30; | ||
| - | yc = random(40)+40; | ||
| - | if (ya == yb or xa == xc or xc == xb or Math.abs((ya+yb)/ | ||
| - | ok = false; | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Ceci étant fait, on affiche l' | ||
| - | <code actionscript> | ||
| - | _root.btn.Valider_btn.tabIndex = _root.nb_saisie+1; | ||
| - | _root.btn.Suite_btn.tabIndex = _root.nb_saisie+2; | ||
| - | //Affichage du n° de la question à l'aide de la fonction creer_texte : | ||
| - | fonctions.creer_texte_dynamique(_root," | ||
| - | if (numquestions == 3 || numquestions == 4) { | ||
| - | fonctions.creer_texte_dynamique(_root," | ||
| - | | ||
| - | | ||
| - | } else { | ||
| - | fonctions.creer_texte_dynamique(_root," | ||
| - | | ||
| - | | ||
| - | } | ||
| - | //on dessine le cadre de l' | ||
| - | fonctions.tracer_cadre_consigne(5, | ||
| - | </ | ||
| - | ==== Affichage d'iep ==== | ||
| - | |||
| - | Il faut ensuite montrer instrumenpoche puis, si nécessaire, | ||
| - | |||
| - | <code actionscript> | ||
| - | // je montre iep | ||
| - | instrumenpoche._visible = true; | ||
| - | // si iep n'est pas en mode géométrie, | ||
| - | if(!Instrumenpoche.geometrie){ | ||
| - | Instrumenpoche.permuter(); | ||
| - | } | ||
| - | instrumenpoche.iep.menu_geo._visible = true; | ||
| - | </ | ||
| - | |||
| - | Il faut bien distinguer '' | ||
| - | <code actionscript> | ||
| - | rend visible le clip '' | ||
| - | |||
| - | La classe '' | ||
| - | |||
| - | La dernière ligne affiche le menu donnant accès aux instruments, | ||
| - | ==== Script iep de la figure de l' | ||
| - | |||
| - | Ensuite, on va dessiner la figure de l' | ||
| - | |||
| - | Le script est un texte. Pour plus de clarté, on va le créer ligne par ligne. | ||
| - | |||
| - | La première ligne consiste à amener le crayon sur le point de coordonnées '' | ||
| - | <code actionscript> | ||
| - | script_pour_iep = "< | ||
| - | </ | ||
| - | Par exemple, si '' | ||
| - | |||
| - | |||
| - | Il faut bien prendre garde aux guillemets. En effet, on a besoin de guillemets : | ||
| - | * dans actionscript, | ||
| - | * dans iep, pour encadrer les valeurs des attributs (comme '' | ||
| - | Pour cela, on a deux types de guillemets : '' | ||
| - | |||
| - | Maintenant que le crayon est sur le premier sommet, on lui fait tracer le triangle : | ||
| - | <code actionscript> | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | </ | ||
| - | puis on crée des points instrumenpoche aux sommets du triangle, on les nomme et on replace le crayon | ||
| - | <code actionscript> | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | script_pour_iep +="< | ||
| - | </ | ||
| - | La variable '' | ||
| - | * elle indique à iep après quelle action il doit se caler pour l' | ||
| - | * elle bloque le bouton " | ||
| - | Il faut donc définir cette variable à la longueur totale du script qu'on vient de créer : | ||
| - | <code actionscript> | ||
| - | Instrumenpoche.image_direct = (new XML(script_pour_iep)).childNodes.length; | ||
| - | </ | ||
| - | La fonction '' | ||
| - | <code actionscript> | ||
| - | LecteurIep.lecture_apres_chargement({anim:"< | ||
| - | </ | ||
| - | |||
| - | ===== Image 4 ===== | ||
| - | Après un | ||
| - | <code actionscript> | ||
| - | stop(); | ||
| - | </ | ||
| - | le code de l' | ||
| - | * une fonction '' | ||
| - | * une fonction '' | ||
| - | ==== Fonction valider ==== | ||
| - | On déclare une fonction qui doit se nommer '' | ||
| - | <code actionscript> | ||
| - | |||
| - | Cette fonction va effectuer des tests sur le script de la figure tracée par l' | ||
| - | |||
| - | La première chose à faire est de vérifier si l' | ||
| - | Ici, il faut savoir si une droite au moins a été tracée. On écrit le code suivant : | ||
| - | <code actionscript> | ||
| - | // test de la validité de la réponse avant de passer aux tests | ||
| - | valide = (TestIep.est_dans_iep({objet:" | ||
| - | </ | ||
| - | qui crée une variable '' | ||
| - | |||
| - | Par défaut, la validation masque le menu d' | ||
| - | <code actionscript> | ||
| - | iep.iep.menu_geo._visible = true; | ||
| - | </ | ||
| - | |||
| - | Pour la validation, il va falloir tester si une certaine droite a été tracée. Pour cela, il faut connaître deux points de cette droite, dont les coordonnées seront transmises à la fonction de test et nommées '' | ||
| - | |||
| - | Question 1 : Coordonnées de deux points de la médiatrice, | ||
| - | <code actionscript> | ||
| - | if (numquestions == 1) { | ||
| - | // médiatrice | ||
| - | xpoint1 = (xa+xb)/2; | ||
| - | ypoint1 = (ya+yb)/2; | ||
| - | xpoint2 = xpoint1+50; | ||
| - | ypoint2 = ypoint1+50*(xb-xa)/ | ||
| - | } | ||
| - | </ | ||
| - | Question 2 : Coordonnées de deux points de la médiane : le milieu d'un côté et le sommet opposé | ||
| - | <code actionscript> | ||
| - | // médiane | ||
| - | xpoint1 = (xa+xb)/2; | ||
| - | ypoint1 = (ya+yb)/2; | ||
| - | xpoint2 = xc; | ||
| - | ypoint2 = yc; | ||
| - | }</ | ||
| - | Question 3 : Hauteur | ||
| - | <code actionscript> | ||
| - | // hauteur sommet | ||
| - | xpoint1 = xa; | ||
| - | ypoint1 = ya; | ||
| - | xpoint2 = xa+50; | ||
| - | ypoint2 = ya+50*(xb-xc)/ | ||
| - | }</ | ||
| - | Question 4 : Bissectrice | ||
| - | |||
| - | On utilise une fonction utilitaire de '' | ||
| - | <code actionscript> | ||
| - | // bissectrice | ||
| - | xpoint1 = xa; | ||
| - | ypoint1 = ya; | ||
| - | var angle1 = fonctions.mesure_angle(xc, | ||
| - | var angle2 = fonctions.mesure_angle(xa+50, | ||
| - | var angle = angle1+angle2; | ||
| - | trace(" | ||
| - | xpoint2 = xa+200; | ||
| - | ypoint2 = ya+200*Math.tan(angle*Math.PI/ | ||
| - | }</ | ||
| - | Question 5 : Hauteur | ||
| - | <code actionscript> | ||
| - | // hauteur côté | ||
| - | xpoint1 = xc; | ||
| - | ypoint1 = yc; | ||
| - | xpoint2 = xc+50; | ||
| - | ypoint2 = yc+50*(xb-xa)/ | ||
| - | }</ | ||
| - | Ensuite, on teste si la bonne droite a été tracée avec iep. Il faut passer les coordonnées des points qu'on vient de calculer. | ||
| - | <code actionscript> | ||
| - | var bonne_reponse = (TestIep.est_dans_iep({objet:" | ||
| - | abscisse1: | ||
| - | ecart_angle: | ||
| - | </ | ||
| - | |||
| - | Si une droite quelconque a été tracée, on procède à la vérification et à l' | ||
| - | <code actionscript> | ||
| - | if (valide) { | ||
| - | _root.occupe = true; | ||
| - | _root.fonctions.desactiver_bouton(" | ||
| - | if (bonne_reponse == true) { | ||
| - | // si c'est bon : | ||
| - | _root.juste = true; | ||
| - | if (_root.nbr_reponse == 0) { | ||
| - | // si la première réponse est la bonne : | ||
| - | fonctions.indication(_root.trad[4][1], | ||
| - | } else if (_root.nbr_reponse == 1) { | ||
| - | // si juste après une erreur : | ||
| - | fonctions.indication(_root.trad[4][2], | ||
| - | } | ||
| - | //on affiche le score : | ||
| - | fonctions.afficher_score(); | ||
| - | _root.suite = 1; | ||
| - | } else { | ||
| - | // si c'est faux : | ||
| - | _root.juste = false; | ||
| - | if (_root.nbr_reponse == 0) { | ||
| - | // en cas de première erreur : | ||
| - | _root.nbr_reponse++; | ||
| - | _root.erreur1++; | ||
| - | message_indication = _root.trad[4][4]; | ||
| - | if (_root.nbr_reponse> | ||
| - | message_indication += _root.trad[4][139]; | ||
| - | } | ||
| - | fonctions.indication(message_indication, | ||
| - | // | ||
| - | _root.fonctions.activer_bouton(" | ||
| - | _root.occupe = false; | ||
| - | } else { | ||
| - | // en cas de deuxième erreur : | ||
| - | _root.nbr_reponse++; | ||
| - | if (_root.numquestions != _root.nbre_questions) { | ||
| - | //si ce n'est pas la dernière question, | ||
| - | message_indication = _root.trad[4][5]; | ||
| - | if (_root.nbr_reponse> | ||
| - | message_indication += _root.trad[4][150]; | ||
| - | } | ||
| - | fonctions.indication(message_indication, | ||
| - | // | ||
| - | onattend(2, | ||
| - | } else { | ||
| - | //si c'est la dernière question, on temporise, | ||
| - | //on corrige et on passe à la suite (on n' | ||
| - | _root.correction(); | ||
| - | _root.suite = 1; | ||
| - | } | ||
| - | //on affiche le score (suivant la configuration chargée) : | ||
| - | fonctions.afficher_score(); | ||
| - | } | ||
| - | //on affiche l'aide (suivant la configuration chargée) : | ||
| - | fonctions.afficher_aide(); | ||
| - | } | ||
| - | //envoi du résultat de l' | ||
| - | commphp(); | ||
| - | } else { | ||
| - | message_indication = _root.trad2[6][1]; | ||
| - | fonctions.indication(message_indication, | ||
| - | } | ||
| - | }</ | ||
| - | |||
| - | ==== Fonction correction ==== | ||
| - | Lorsque l' | ||
| - | |||
| - | Pour éviter des calculs trop ardus, on va utiliser la classe [[: | ||
| - | |||
| - | Ici, nous allons utiliser plusieurs fois la fonction '' | ||
| - | |||
| - | Cette fonction construit au compas un point équidistant de deux autres dont les coordonnées sont passées en paramètres. Elle renvoie un tableau [script de la construction, | ||
| - | |||
| - | Au début de la fonction de correction, on défini '' | ||
| - | <code actionscript> | ||
| - | // Fonction de correction : | ||
| - | function correction() { | ||
| - | Instrumenpoche.image_direct = ScriptIep.code_xml.firstChild.childNodes.length; | ||
| - | </ | ||
| - | On récupère le script instrumenpoche dans un texte. '' | ||
| - | <code actionscript> | ||
| - | var texte = ScriptIep.code_xml.firstChild.childNodes.join("" | ||
| - | </ | ||
| - | === Première question (médiatrice) === | ||
| - | La première chose à faire est de masque tous les instruments, | ||
| - | <code actionscript> | ||
| - | // on masque les instrus qui peuvent gêner éventuellement | ||
| - | if(numquestions==1){ | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | </ | ||
| - | |||
| - | Pour tracer la médiatrice à l'aide du compas, on utilise la fonction '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | Cette fonction renvoie un tableau, dont la première partie est une portion de script iep qui correspond au tracé des deux arcs de cercle. On ajoute ce morceau de script à notre texte : | ||
| - | |||
| - | <code actionscript> | ||
| - | var tab = MacroIep.placer_point_equidistant(xb, | ||
| - | | ||
| - | texte += tab[0]; | ||
| - | </ | ||
| - | Le tableau renvoyé par '' | ||
| - | <code actionscript> | ||
| - | texte+="< | ||
| - | texte += "< | ||
| - | nom='" | ||
| - | taille=' | ||
| - | </ | ||
| - | On masque le message puis on passe au deuxième point équidistant et on affiche le même message que précédemment, | ||
| - | |||
| - | Remarque : par défaut, '' | ||
| - | |||
| - | <code actionscript> | ||
| - | texte +="< | ||
| - | tab = MacroIep.placer_point_equidistant(xa, | ||
| - | distance: | ||
| - | texte += tab[0]; | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte += "< | ||
| - | | ||
| - | | ||
| - | texte += "< | ||
| - | | ||
| - | </ | ||
| - | Ensuite, on trace la médiatrice à la règle : | ||
| - | <code actionscript> | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | </ | ||
| - | Ici, nous avons utilisé l' | ||
| - | |||
| - | On ajoute des explications animées sur le fait que la médiatrice est perpendiculaire au segment et passe par son milieu : | ||
| - | |||
| - | <code actionscript> | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | | ||
| - | texte+=MacroIep.creer_codage_angle_droit(xb, | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | Pour cette fin de code, la nouveauté est la fonction '' | ||
| - | === Deuxième question (médiane) === | ||
| - | La correction de la deuxième question est plus simple que la précédente : les deux points importants sont un sommet du triangle initial (dont on a les coordonnées '' | ||
| - | <code actionscript> | ||
| - | else if(numquestions==2){ | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | </ | ||
| - | On peut coder des longueurs égales dans instrumenpoche. On place ces codages respectivement au quart et aux trois-quarts de la longueur du segment : | ||
| - | <code actionscript> | ||
| - | texte+="< | ||
| - | abscisse='" | ||
| - | id=' | ||
| - | texte+="< | ||
| - | abscisse='" | ||
| - | id=' | ||
| - | } | ||
| - | </ | ||
| - | === Troisième et cinquième questions (hauteurs) === | ||
| - | Les questions 3 et 5 concernent les hauteurs. Il n'y a pas de difficulté particulière si on a compris comment fonctionne le script d' | ||
| - | |||
| - | <code actionscript> | ||
| - | else if(numquestions==3 || numquestions ==5){ | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | | ||
| - | | ||
| - | var tab = fonctions.proj_ortho(xc, | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte='" | ||
| - | taille=' | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | couleur=' | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | } | ||
| - | </ | ||
| - | === Quatrième question === | ||
| - | {{ : | ||
| - | Pour la correction de la quatrième question (la bissectrice), | ||
| - | - tracer un arc de cercle de centre W qui coupe les segments [WQ] et [WB] ; | ||
| - | - repérer les points d' | ||
| - | - tracer un point équidistant de ces deux points ; | ||
| - | - tracer la droite passant par W et ce point équidistant. | ||
| - | |||
| - | On commence par masquer tous les instruments, | ||
| - | <code actionscript> | ||
| - | else{ | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | </ | ||
| - | <code actionscript> | ||
| - | var angle1 = Math.atan2(yb-ya, | ||
| - | var angle2 = Math.atan2(yc-ya, | ||
| - | texte +="< | ||
| - | texte +="< | ||
| - | var eca = (Math.min(CalculIep.distance(xa, | ||
| - | texte +="< | ||
| - | var sens; | ||
| - | if(angle1< | ||
| - | angle1 -=10 | ||
| - | angle2 +=10; | ||
| - | sens = 5; | ||
| - | }else{ | ||
| - | angle1 +=10; | ||
| - | angle2 -=10; | ||
| - | sens = -5; | ||
| - | } | ||
| - | texte+="< | ||
| - | texte +="< | ||
| - | texte+="< | ||
| - | couleur=' | ||
| - | texte +="< | ||
| - | var tab1 = CalculIep.point_sur_droite(xa, | ||
| - | var tab2 = CalculIep.point_sur_droite(xa, | ||
| - | tab = MacroIep.placer_point_equidistant(tab2[0], | ||
| - | {id1:53, id2:52, couleur: 0x006600, epaisseur: | ||
| - | texte += tab[0]; | ||
| - | texte +="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | ordonnee='" | ||
| - | texte+="< | ||
| - | texte+="< | ||
| - | texte+=MacroIep.creer_codage_angle(xc, | ||
| - | texte+=MacroIep.creer_codage_angle(tab[1], | ||
| - | }</ | ||
| - | === Finalisation === | ||
| - | Une fois les actions décrites dans la variable '' | ||
| - | <code actionscript> | ||
| - | ScriptIep.code_xml = new XML("< | ||
| - | </ | ||
| - | On règle '' | ||
| - | <code actionscript> | ||
| - | Instrumenpoche.image_fin = ScriptIep.code_xml.firstChild.childNodes.length; | ||
| - | </ | ||
| - | Puis on passe en mode lecture, étant entendu que la fonction '' | ||
| - | <code actionscript> | ||
| - | Instrumenpoche.permuter(); | ||
| - | </ | ||
| - | La fin de la fonction correction est classique : on affiche le bouton " | ||
| - | <code actionscript> | ||
| - | if (_root.numquestions< | ||
| - | _root.exoSuite = true; | ||
| - | fonctions.indication(_root.trad[4][6], | ||
| - | } else { | ||
| - | fonctions.indication(_root.trad[4][7], | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | Le script de cet exercice se termine par la fonction " | ||
| - | <code actionscript> | ||
| - | // la fonction onattend permet de temporiser et de passer à la suite en lançant la fontion " | ||
| - | _root.onEnterFrame = function() { | ||
| - | if (_root.suite == 1) { | ||
| - | onattend(1, | ||
| - | _root.suite = 0; | ||
| - | } | ||
| - | }; | ||
| - | </ | ||
exo2849.1283972613.txt.gz · Dernière modification : (modification externe)