Geodyn - solution de géométrie sur un navigateur
Geodyn est un outil de géométrie dynamique et d'instruments virtuels de géométrie. Geodyn fonctionne sur un navigateur internet sans installation. Geodyn est un outil open-source, gratuit et libre. La licence est à déterminer.
Pour lancer Geodyn, il suffit taper dans la barre d'adresse du navigateur : http://geodyn.fr/geodyn.html. Pas besoin de se soucier de la version de Geodyn que vous utilisez : Geodyn est toujours à jour.
Geodyn est une application multi-plateforme car elle peut être utilisée sur Windows, Linux ou Mac. De plus, Geodyn est aussi multi-système c'est à dire qu'il y a les mêmes fonctionnalités et la même interface graphique sur des dispositifs mobiles que sur des PC. Notamment Geodyn peut être facilement utilisée sur des dispositifs IOS ou Android. Enfin, Geodyn peut être utilisé avec un TNI ou VPI. Pour respecter cet aspect de Geodyn, les interactions avec l'utilisateur sont de deux sortes : le clic simple et le glisser-déplacer : clic sans relâcher puis déplacement. Geodyn ne permet pas le survol c'est à dire un clic et le déplacement de la souris sans appuyer sur celle-ci.
Vous souhaitez obtenir les sources de geodyn, il suffit de télécharger l'archive zip puis de la décompresser. Il suffit alors d'ouvrir le fichier geodyn.html avec un navigateur récent comme Chrome, IE9, Firefox ou bien Safari.
Vous souhaitez utiliser Geodyn sans connexion internet, c'est possible. Il suffit taper dans la barre d'adresse du navigateur : http://geodyn.fr/geodyn-local.html.

La première fois, une connexion internet est indispensable pour télécharger Geodyn dans le cache du navigateur.

Puis aucune connexion internet n'est alors indispensable. Dès qu'il y a une mise à jour de Geodyn, et que vous êtes connecté à internet, la nouvelle version de Geodyn se télécharge automatiquement.
L'intérêt de la version locale est multiple (pas de connexion internet) notamment pour les utilisateurs de tablette comme l'ipad :
Il est possible de créer sa propre interface graphique de geodyn avec ses menus et ses boutons. Il s'agit d'un plugin Geodyn. Un plugin Geodyn peut être inséré dans une page html de votre choix (voir la page d'exemples de ce site) ou bien alors être une page html autonome. Dans ce deuxième cas, il est nécessaire d'avoir un répertoire sur le serveur de geodyn par exemple http://geodyn.fr/users/test (pour le répertoire de test).
Pour obtenir un répertoire il suffit de me contacter sur geodyn@icloud.com ou bien remplir le formulaire de contact. Un répertoire "test" est à votre disposition ici pour tester cette fonctionnalité (mot de passe "geodyn").
Si vous possédez déjà un répertoire sur le serveur geodyn.fr, veuillez vous rendre ici.

Pour créer et configurer son plugin Geodyn il suffit d'accéder à la page suivante.
Cliquer sur le bouton "Démarrer" pour lancer l'animation.
Cliquer sur le bouton "Démarrer" pour lancer l'animation.
Utiliser le rapporteur virtuel pour donner la mesure de l'angle.
Déplacer le point A.
Voici le pourcentage d'apparition de la somme de 2 dés.
Une exemple de géométrie dynamique avec personnalisation des actions.
Gestion de l'historique.
Tracer une droite parallèle passant par un point.
Utilisation de la fenêtre "Propriétés graphiques".
Utilisation de la règle virtuelle .
Voici une série de documentations :
La documentation sur les outils de Geodyn est disponible ici
Gestion des validations
Gestion des scripts
Gestion des fenêtres d'information
Formules mathématiques
Les validations permettent d'intéragir avec l'utilisateur (élèves) par le moyen d'élement html de type bouton par exemple. Ces validations servent essentiellement à vérifier le contenu de l'afficheur par rapport à des attentes (du professeur par exemple)
Exemple d'instructions javascript pour une validation
??
var val1 = $g.validate();
val1.position(350,10);
val1.css('bo2#006666;b#eeffff;br10;h48;pa5');
val1.type('mtxt');
val1.options('label:Valider;math:approx{angle{ABC}}{};txtW:40');
val1.setTxtCss('mat10;mal5');
val1.setButtonCss('mat10;mal5');
val1.exec("var n = @num()");
val1.exec("@valid(2+1==3,'erreur')");
val1.exec("var test1 = @between(@dist('A','B'),1,n)");
val1.exec('@valid(test1,"La distance AB n\'est pas correcte")');
val1.exec("var test2 = @near(@ang('A','B','C'),90)");
val1.exec('@valid(test2,"L\'angle ABC n\'est pas correct","très bien")');
val1.show();
??
Instructions javascript à insérer dans les commandes Geodyn pour les validations
Exemple Description
var val1 = $g.validate(); Création de la variable "val1" qui est une validation.
val1.show(); Permet d'afficher la fenêtre de validation
val1.css(style); Permet de modifier le style de la fenêtre de validation. Il est conseillé de définir une hauteur avec le style "h20"
val1.position(70,3); Définit la position de la fenêtre de validation "val1".
70 : nombre de pixels à partir de la gauche
3 : nombre de pixels à partir du haut
val1.type('b'); Définit le type de la fenêtre de validation "val1".
Le type peut être :
b : la fenêtre de validation comporte seulement un bouton
txt : la fenêtre de validation comporte un champ texte suivi d'un bouton
mtxt : la fenêtre de validation comporte une formule mathématique suivie d'un champ texte suivi d'un bouton
val1.options('opts'); Définit les paramètres de la fenêtre de validation "val1".
Les paramètres peuvent être séparés par des points virgules :
label:texte : le texte du bouton
math:formule : la formule
txtW:10 : la largeur du champ texte en pixels
txtH:50 : la hauteur du champ texte en pixels
val1.setButtonCss('sty'); Définit le style du bouton de la fenêtre de validation "val1"
val1.setTxtCss('sty'); Définit le style du champ texte de la fenêtre de validation "val1"
val1.setMathCss('sty'); Définit le style de la formule de la fenêtre de validation "val1"
val1.exec('alert("test")'); Ajoute une instruction javascript lors de la validation (click sur le bouton). Ces instructions doivent être placées avant la visualisation (show) de la fenêtre de validation. En plus des instructions de base, il est possible d'ajouter les instructions suivantes :
var n = @num() : permet de récupérer un nombre à partir du champ texte
@dist('A','B') : retourne la distance entre les points A et B
@ang('A','B','C') : retourne la mesure de l'angle ABC en dégrés
@near(n1,n2,prec) : retourne VRAI si le nombre n1 est proche du nombre n2 par rapport à la précision prec (prec n'est pas obligatoire et dans ce cas la précision est au dixième).
@between(n,n1,n2) : retourne VRAI si le nombre n est entre n1 et n2.
@valid(2==3,'erreur','correct') : permet d'effectuer une validation élémentaire (2==3), si le test n'est pas valide le texte 'erreur' s'affiche
@valid(2+1==3,'erreur','correct') : permet d'effectuer une validation élémentaire (2+1==3), si le test n'est pas valide le texte 'erreur' s'affiche sinon le etxte 'correct' est affiché
Gestion des styles Gestion du style d'un composant html (texte ou autre). Les paramètres de style peuvent être séparés par des ; pour ainsi combiner plusieurs styles :
  • bold ou gras : mettre en gras
  • center ou c : aligner au centre
  • left ou l : aligner à gauche
  • right ou r : aligner à droite
  • textsc ou sc : mettre en petite majuscule
  • red : mettre en rouge
  • blue : mettre en bleu
  • green : mettre en vert
  • red : mettre en rouge
  • #556644 : mettre la couleur #556644
  • b#883722 : mettre la couleur de fond #883722
  • w112 : largeur de 112 pixels
  • h19 : hauteur de 19 pixels
  • pal5 : marge intérieure gauche de 5 pixels
  • par6 : marge intérieure droite de 6 pixels
  • pat7 : marge intérieure en haut de 7 pixels
  • pab8 : marge intérieure en bas de 8 pixels
  • pa9 : marge intérieure (toutes) de 9 pixels
  • mal5 : marge extérieure gauche de 5 pixels
  • mar6 : marge extérieure droite de 6 pixels
  • mat7 : marge extérieure en haut de 7 pixels
  • mab8 : marge extérieure en bas de 8 pixels
  • ma9 : marge extérieure (toutes) de 9 pixels
  • ti40 : indentation du texte de 40 pixels
  • fs14 : taille de police de caractères de 14 pt
  • bob2#008833 : bordure en bas de 2 pixels d'épaisseur et de couleur #008833
  • bor2#008833 : bordure à droite de 2 pixels d'épaisseur et de couleur #008833
  • bol2#008833 : bordure à gauche de 2 pixels d'épaisseur et de couleur #008833
  • bot2#008833 : bordure en haut de 2 pixels d'épaisseur et de couleur #008833
  • bo2#008833 : bordures (tous les côtés) de 2 pixels d'épaisseur et de couleur #008833
  • br8 : rayon de la bordure de 8 pixels
  • Dans les commandes Geodyn, il est possible d'insérer des instructions javascript :
  • Les instructions doivent être comprises entre @@ (avec mise à jour et exécutées à chaque fois)
  • Les instructions doivent être comprises entre ?? (sans mise à jour et exécutées qu'une seule fois)

  • Un objet permet de "communiquer" entre les commandes Geodyn et les instructions javascript, il s'agit de $g ou gd

    D'autre part, dans les instructions javascript, il est possible d'accéder à des variables inhérentes aux figures. En effet, dès que des objets géométriques sont créés sur l'afficheur de figures, de nombreuses variables sont alors disponibles.
    Variables pour un point
    Point A
    A.x Abscisse (double) du point A dans l'afficheur
    A.y Ordonnée (double) du point A dans l'afficheur
    A.xMark Abscisse (double) du point A dans le repère
    A.yMark Ordonnée (double) du point A dans le repère
    A.loc Coordonnées ([]) du point A dans l'afficheur
    A.coo Coordonnées ([]) du point A dans le repère
    Variables pour un segment
    Segment [AB] : sAB
    sAB.p1 La première extrémité (point) du segment [AB]
    sAB.p2 La deuxième extrémité (point) du segment [AB]
    sAB.length ou sAB.l Longueur (double) en cm du segment [AB]
    sAB.angle ou sAB.a Angle (double) en degrés du segment [AB]
    Variables pour une droite simple
    Droite (d1) : d1
    d1.a Le coefficient directeur de la droite (d1)
    d1.b L'ordonnée à l'origine de la droite (d1)
    d1.angle ou d1.alpha Angle (double) en degrés du la droite (d1)
    Variables pour une droite passant par deux points
    Droite (AB) : dAB
    dAB.a Le coefficient directeur de la droite (AB)
    dAB.b L'ordonnée à l'origine de la droite (AB)
    dAB.angle ou dAB.alpha Angle (double) en degrés du la droite (AB)
    dAB.p1 Le premier point de la droite (AB)
    dAB.p2 Le deuxième point de la droite (AB)
    Variables pour un cercle de centre un point
    Cercle c1
    c1.center ou c1.c Le centre (point) du cercle c1
    c1.radius ou c1.r Le rayon en cm du cercle c1
    c1.length ou c1.l Le périmètre en cm du cercle c1
    c1.area ou c1.a L'aire en cm carré du cercle c1
    Variables pour un angle
    Angle aABC
    aABC.value La mesure de l'angle en degrés
    Fonctions Geodyn
    Nom Description Exemple
    exists Vérifie qu'une figure existe var test = $g.exists('B')
    figure Retourne une figure par son nom var B = $g.figure('B')
    near Vérifie si un nombre est proche d'un autre nombre var test = $g.near(n1,n2,2)
    vérifie si le nombre n1 est proche de n2 à 0,01 près.
    between Vérifie si un nombre est compris entre deux nombre var test = $g.between(n,min,max)
    vérifie si le nombre n est compris entre min et max.
    coo Création d'un tableau de coordonnées var c1 = $g.coo(2,3)
    var c1 = $g.coo(2,3)
    distance Distance entre deux points (ou tableau de coordonnées) var d1 = $g.distance(4,B)
    var d2 = $g.dist([2,3],C)
    var d3 = $g.d([2,3],C)
    vector Vecteur entre deux points (ou tableau de coordonnées) var v1 = $g.vector(4,B)
    var v2 = $g.vect([2,3],C)
    var v3 = $g.v([2,3],C)
    norme Retourne la norme d'un vecteur var d1 = $g.norme(v)
    où v est un vecteur (abscisse et ordonnée)
    normalise Retourne un vecteur normé à partir d'un vecteur var v = $g.normalise(v1)
    où v1 est un vecteur (abscisse et ordonnée) et v le vecteur de norme 1
    angle Retourne l'angle en degrés d'un vecteur ou d'une direction var a1 = $g.angle(v1)
    où v1 est un vecteur (abscisse et ordonnée) et v le vecteur de norme 1
    var a2 = $g.angle([1,2],B)
    angle2Vectors Retourne l'angle (mesure principale) en degrés formé par deux vecteurs var a1 = $g.angle2Vectors(v1,v2)
    var a2 = $g.angle2Vectors([1,2],[6,7])
    mainMeasure Retourne la mesure principale en degrés d'un angle (entre 0 et 360) var a1 = $g.mainMeasure(657)
    translate Retourne le point translaté d'un vecteur var p2 = $g.translate(v1,p1)
    var p2 = $g.translate(v1,[2,3])
    var p2 = $g.translate([1,2],B)
    multiplyByScalar Retourne un vecteur colinéaire à un autre et multiplié par un scalaire. Le vecteur peut être de dimension quelconque var v2 = $g.multiplyByScalar(v1,3.3)
    directNormalVector Retourne un vecteur normal (sens direct) var v2 = $g.directNormalVector(v1)
    undirectNormalVector Retourne un vecteur normal (sens indirect) var v2 = $g.undirectNormalVector([2,4])
    add Retourne un vecteur résultat de la somme de deux vecteurs. Les vecteurs peuvent être de dimension quelconque var v3 = $g.add(v1,v2)
    var v3 = $g.add([1,2,3],[4,5,6])
    scalarProduct Retourne le produit scalaire de deux vecteurs. Les vecteurs peuvent être de dimension quelconque var p1 = $g.scalarProduct(v1,v2)
    var p2 = $g.scalarProduct([1,2,3],[4,5,6])
    distanceToDirection Retourne la distance d'un point à une direction (formé de deux points) var d1 = $g.distanceToDirection(p1,A,B)
    var d1 = $g.distanceToDirection([5,6],[7,8],G)
    isInSegment Vérifie si un point appartient à un segment formé de deux points. var test1 = $g.isInSegment(p1,A,B)
    var test2 = $g.isInSegment([5,6],[7,8],G)
    rotate Effectue une rotation en degrés d'un point var p1 = $g.rotate([5,6],40,B)
    var p2 = $g.rotate(C,-90,[4,6])
    affinity Effectue une affinité var p1 = $g.affinity(A,B,C,2,30)
    effectue l'affinité du point A de 30 degrés par rapport à la direction (BC) et avec une longueur de 2 cm

    var p1 = $g.affinity(A,B,C,45)
    effectue l'affinité du point A de 45 degrés par rapport à la direction (BC). Equivalent à une rotation.

    var p1 = $g.affinity(A,3,56)
    effectue l'affinité du point A de 56 degrés et une longueur de 3 cm.
    isobarycenter Retourne l'isobarycentre d'une liste de points var p1 = $g.isobarycenter(A,B,[2,3],[5,6],H)
    middle Retourne le milieu de deux points var p1 = $g.middle(A,[2,3])
    line Création d'une droite passant par deux points var l1 = $g.line(A,[2,3])
    l1 est un objet javascript : {a:,b:,vertical: false/true,v: vecteur directeur}
    semiline Création d'une demi-droite passant par deux points var dl1 = $g.semiline(A,[2,3])
    dl1 est un objet javascript : {a:,b:,vertical: false/true,start: , v: vecteur directeur}
    pointOnLine Création d'un point sur une droite var p1 = $g.pointOnLine(l1,x)
    x est l'abscisse du point si la droite n'est pas verticale ou bien x représente l'ordonnée du point dans le cas contraire.
    perpendicular Retourne la droite perpendiculaire à une autre droite et passant par un point. var l2 = $g.perpendicular(l1,p)
    segmentBissector Retourne la médiatrice de deux points ou positions. var l1 = $g.segmentBissector(p1,p2)
    var l2 = $g.segmentBissector([2,7],C)
    angleBissector Retourne la bissectrice d'un angle formé par trois points ou positions. var l1 = $g.angleBissector(A,B,C)
    B est le sommet de l'angle
    parallel Retourne la droite parallèle à une autre droite et passant par un point. var l2 = $g.parallel(l1,p)
    symetricCenter Retourne le symétrique d'un point par rapport à un centre. var p2 = $g.symetricCenter(p,center)
    intersection2Lines Retourne l'intersection entre deux droites var p1 = $g.intersection2Lines(l1,l2)
    randomNumbers Retourne une liste de nombres aléatoires var list = $g.randomNumbers(nbr,start,end,decimals)
    nbr : nombre de valeurs dans la liste ; start : nombre de début; end : nombre de fin; decimals : nombre de décimales dans les valeurs
    random Retourne un nombre "au hasard" var n = $g.random(start,end,decimals)
    start : nombre de début; end : nombre de fin; decimals : nombre de décimales dans les valeurs
    dot2Comma Remplace les points par des virgules dans une chaîne de caractères var newText = $g.dot2Comma(text)
    remplace dans "text" les points par des virgules et met le résultat dans la variable "newText".
    statistic Création d'une série statistique var stat1 = $g.statistic()
    var stat2 = $g.statistic(list)
    list : liste de de valeurs dans la série statistique

    L'objet javascript stat propose les données suivants :
    * stat.list -> liste de départ
    * stat.countList -> effectifs par valeurs croissantes du caractère (liste de [val,n])
    * stat.cumulateCountList -> effectifs cumulés par valeurs croissantes du caractère (liste de [val,n])
    * stat.frequencies -> fréquence par valeurs croissantes du caractère (liste de [val,freq])
    * stat.frequenciesPercent -> fréquence en pourcentages par valeurs croissantes du caractère (liste de [val,%])
    val Retourne ou définit la valeur d'un élément html supportant l'attribut "value" var n1 = $g.$val('id')
    L'élément html d'identifiant 'id' doit supporter l'attribut "value"

    $g.$val('id','une nouvelle valeur')
    L'élément html d'identifiant 'id' doit supporter l'attribut "value"
    numberVal Retourne la valeur numérique (ou 0) d'un élément html supportant l'attribut "value" var n1 = $g.numberVal('id')
    L'élément html d'identifiant 'id' doit supporter l'attribut "value"
    show Affiche un élément html $g.show('id')
    L'élément html d'identifiant 'id' est affiché
    hide Cache un élément html $g.hide('id')
    L'élément html d'identifiant 'id' est caché
    text Définit le texte d'un élément html $g.text('id',"mon texte")
    Le texte de l'élément html d'identifiant 'id' est modifié
    html Définit le contenue html d'un élément html $g.html('id',"mon contenu html")
    Le contenu html de l'élément html d'identifiant 'id' est modifié
    Il est possible d'afficher des fenêtres sur l'afficheur de figures. Ces fenêtres permettent de donner des informations à l'utilisateur comme une consigne par exemple. Ces informations doivent être insérées dans les commandes Geodyn (encadrées par ??). Il suffit d'insérer les instructions javascript suivantes dans la listes des commandes Geodyn :
    Exemple d'instructions javascript pour une information
    ??
    var inf = $g.info();
    inf.bounds(70,3,250,200);
    inf.atxt({txt: 'énoncé : ',id: 'titre',visible: true,sty: 'bob2#000000;#772222;pab5;mab5;bold'});
    inf.amath({math: 'angle{ABC} : ',id: 'm1',visible: true,size: 10});
    var fig = inf.afig({width: 6,height: 4,background: '#eeeeff',sty: 'mal10'});
    fig.exec('A=point(1,0.2)');
    fig.compute();
    inf.css({background: '#eeeeff',opacity: 0.7});
    inf.show();
    ??
    Instructions javascript à insérer dans les commandes Geodyn pour les informations
    Exemple Description
    var inf = $g.info(); Création de la variable "inf" qui est une information.
    inf.show(); Permet d'afficher la fenêtre d'information
    inf.css(style); Permet de modifier le style de la fenêtre d'information.
    inf.bounds(70,3,250,200); Définit la position et la taille de la fenêtre de l'information "inf".
    70 : nombre de pixels à partir de la gauche
    3 : nombre de pixels à partir du haut
    250 : largeur de la fenêtre en pixels
    200 : hauteur de la fenêtre en pixels
    Gestion des styles Gestion du style d'un composant html (texte ou autre). Les paramètres de style peuvent être séparés par des ; pour ainsi combiner plusieurs styles :
  • bold ou gras : mettre en gras
  • center ou c : aligner au centre
  • left ou l : aligner à gauche
  • right ou r : aligner à droite
  • textsc ou sc : mettre en petite majuscule
  • red : mettre en rouge
  • blue : mettre en bleu
  • green : mettre en vert
  • red : mettre en rouge
  • #556644 : mettre la couleur #556644
  • b#883722 : mettre la couleur de fond #883722
  • w112 : largeur de 112 pixels
  • h19 : hauteur de 19 pixels
  • pal5 : marge intérieure gauche de 5 pixels
  • par6 : marge intérieure droite de 6 pixels
  • pat7 : marge intérieure en haut de 7 pixels
  • pab8 : marge intérieure en bas de 8 pixels
  • pa9 : marge intérieure (toutes) de 9 pixels
  • mal5 : marge extérieure gauche de 5 pixels
  • mar6 : marge extérieure droite de 6 pixels
  • mat7 : marge extérieure en haut de 7 pixels
  • mab8 : marge extérieure en bas de 8 pixels
  • ma9 : marge extérieure (toutes) de 9 pixels
  • ti40 : indentation du texte de 40 pixels
  • fs14 : taille de police de caractères de 14 pt
  • bob2#008833 : bordure en bas de 2 pixels d'épaisseur et de couleur #008833
  • bor2#008833 : bordure à droite de 2 pixels d'épaisseur et de couleur #008833
  • bol2#008833 : bordure à gauche de 2 pixels d'épaisseur et de couleur #008833
  • bot2#008833 : bordure en haut de 2 pixels d'épaisseur et de couleur #008833
  • bo2#008833 : bordures (tous les côtés) de 2 pixels d'épaisseur et de couleur #008833
  • br8 : rayon de la bordure de 8 pixels
  • inf.atxt({txt: 'texte : ',id: 'titre',visible: true,sty: 'style'}); Ajoute (avec un saut de ligne à la fin) un texte dans la fenêtre d'information "inf". Ce texte peut comporter des variables comme ${A.x} qui permet d'afficher l'abscisse du point A présent sur l'afficheur de figures.
    txt : le texte à insérer
    id : l'identifiant qui permet d'accéder à ce texte dans les commandes Geodyn (id n'est pas obligatoire). Comme par exemple :
  • showInfo('titre') qui permet d'afficher le texte 'titre'
  • hideInfo('titre') qui permet de cacher le texte 'titre'
  • info('titre','nouvelle valeur de texte') qui permet de modifier le texte 'titre'
  • visible : si ce texte est visible ou non. Par défaut le texte est visible. (visible n'est pas obligatoire)
    sty : Le style du texte (sty n'est pas obligatoire).
    inf.txt({txt: 'texte : ',id: 'titre',visible: true,sty: 'style'}); Idem que l'instruction précédente mais sans saut de ligne à la fin.
    inf.amath({math: 'angle{ABC} : ',id: 'm1',visible: true,size: 10}); Ajoute (avec un saut de ligne à la fin) une formule mathématique dans la fenêtre d'information "inf". Ce texte peut comporter des variables comme ${A.x} qui permet d'afficher l'abscisse du point A présent sur l'afficheur de figures.
    math : la formule mathématique à insérer
    id : l'identifiant qui permet d'accéder à cette formule mathématique dans les commandes Geodyn (id n'est pas obligatoire).
    visible : si la formule mathématique est visible ou non. Par défaut le texte est visible. (visible n'est pas obligatoire)
    size : La hauteur en pixels de la formule mathématique (size n'est pas obligatoire).
    inf.math({math: 'angle{ABC} : ',id: 'm1',visible: true,size: 10}); Idem que l'instruction précédente mais sans saut de ligne à la fin.
    var fig = inf.afig({width: 6,height: 4,background: '#eeeeff',sty: 'style'}); Ajoute une figure Geodyn (avec un saut de ligne à la fin) dans la fenêtre d'information "inf". Cette figure est représentée par la variable "fig".
    width : la largeur de la figure à insérer en cm
    height : la hauteur de la figure à insérer en cm
    background : le fond de la figure
    sty : le style de la "boite" encadrant la figure (sty n'est pas obligatoire).
  • showInfo('titre') qui permet d'afficher le texte 'titre'
  • hideInfo('titre') qui permet de cacher le texte 'titre'
  • info('titre','nouvelle valeur de texte') qui permet de modifier le texte 'titre'
  • Sur cette figure (variable "fig") il est possible d'effectuer les actions suivantes :
  • fig.exec('A=point(2,3)'); permet d'insérer dans la figure "fig" la commande Geodyn A=point(2,3)
  • fig.compute(); permet de générer la figure. Cette instruction est obligatoire.
  • var fig = inf.fig({width: 6,height: 4,background: '#eeeeff',sty: 'style'}); Idem que l'instruction précédente mais sans saut de ligne à la fin.
    inf.input({name: 'nom1',id: 'i1',visible: true,size: 50}); Ajoute un champ texte (sans saut de ligne à la fin) dans la fenêtre d'information "inf".
    inf.ainput({name: 'nom1',id: 'i1',visible: true,size: 50}); Idem que l'instruction précédente mais avec un saut de ligne à la fin.
    inf.button({name: 'nom1',id: 'i1',visible: true,label: 'label'}); Ajoute un bouton (sans saut de ligne à la fin) dans la fenêtre d'information "inf".
    inf.abutton({name: 'nom1',id: 'i1',visible: true,label: 'label'}); Idem que l'instruction précédente mais avec un saut de ligne à la fin.
    Expression :
    Expression Rendu graphique
    angle{ABC} angle{ABC}
    sqrt{49} = 7 sqrt{green{49}} = 7
    sqrt{frac{red{2x}}{blue{3}}} sqrt{frac{red{2x}}{blue{3}}}
    qrt{pow{p{3x-4}{2}}{2}}+frac{sqrt{2}}{8} sqrt{pow{p{3x-4}{2}}{2}}+frac{sqrt{2}}{8}
    approx{AB}{3 cm} approx{AB}{3cm}
    pow{AB}{c{#FF0000}{2}} pow{AB}{c{#FF0000}{2}}
    under{G}{1}+under{A}{1} under{G}{1}+under{A}{1}
    pow{p{3-5x}{2}}{2}*(2x - 9)-8 pow{p{3-5x}{2}}{2}*(2x - 9)-8
    frac{2}{3} - 4 frac{2}{3} - 4
    fbox{5+4x} fbox{5+4x}
    frac{2}{3}*p{2+9}{-2}+frac{sqrt{5x+1}}{pow{(2-3x)}{2}} - frac{angle{EFG}}{under{3}{2-3x}} frac{2}{3}*p{2+9}{-2}+frac{sqrt{5x+1}}{pow{(2-3x)}{2}} - frac{angle{EFG}}{under{3}{2-3x}}
    Il est possible de piloter Geodyn à distance. Par exemple, un enseignant peut créer une figure sur Geodyn pendant que les élèves (sur tablette ou pc) voient ce que l'enseignant réalise en même temps qu'il le fait. Dans ce cas-là, l'enseignant doit créer un "serveur" référencé par un nom unique. Les élèves qui se connectent à ce serveur (sous le même nom) pourront voir alors ce que réalise l'enseignant "en direct".
    Pour l'enseignant
    Il suffit de choisir un nom de serveur. Ce nom peut être composé de lettre mais attention il ne doit pas y avoir d'espace dans ce nom.

    Lors du lancement du serveur un bouton "Stop" apparaît. Une fois la présentation terminée, il est indispensable de cliquer sur ce bouton.
    Serveur pour l'enseignant :
    Pour les élèves
    Il suffit d'indiquer le nom du serveur. C'est l'enseignant qui possède ce nom de serveur.
    Serveur : -
    AlgoDot est un outil permettant de tracer des formes géométriques par l'intermédiaire d'instructions javascript. Ces algorithmes de construction doivent être écrits dans les commandes Geodyn (disponible en cliquant sur ). Ces instructions doivent absolument être encadrées par ## et chaque instruction de construction commencent par ad (comme AlgoDot) et doivent se terminer par ;. Il tout à fait envisageable d'insérer des instructions javascript classiques danns ces algorithme :
    ##
    adGrid(true);
    adShow(2,3);
    alert('un message');
    ##
    Cliquer sur le bouton démarrer :
    Une instruction javascript AlgoDot (à insérer dans les commandes Geodyn entre ##) commence par ad et se termine par ;. Voici la liste des instructions javascript pour utiliser l'AlgoDot :
    adShow(2,4);
    Affiche l'AlgoDot au point de coordonnées (2;4)
    adHide();
    Cache l'AlgoDot
    adLocate(5,6);
    Trace un trait et déplace l'AlgoDot au point de coordonnées (5,6)
    adMove(2,1.9);
    Trace un trait et déplace l'AlgoDot de 2 cm vers la droite et de 1.9 cm vers le haut
    adRight(5);
    Trace un trait et déplace l'AlgoDot de 5 cm vers la droite
    adRight(4,30);
    Trace un trait et déplace l'AlgoDot de 4 cm vers la droite et un angle de 30° par rapport au dernier trait
    adLeft(5);
    Trace un trait et déplace l'AlgoDot de 5 cm vers la gauche
    adLeft(4,30);
    Trace un trait et déplace l'AlgoDot de 4 cm vers la gauche et un angle de 30° par rapport au dernier trait
    adUp(5);
    Trace un trait et déplace l'AlgoDot de 5 cm vers le haut
    adUp(4,30);
    Trace un trait et déplace l'AlgoDot de 4 cm vers le haut et un angle de 30° par rapport au dernier trait
    adDown(5);
    Trace un trait et déplace l'AlgoDot de 5 cm vers le bas
    adDown(4,30);
    Trace un trait et déplace l'AlgoDot de 4 cm vers le bas et un angle de 30° par rapport au dernier trait
    adColor('#eedd88');
    Modifie la couleur de trait de l'AlgoDot
    adPath();
    Début d'un chemin pour le remplissage
    adPath('#ff66ee');
    Fin d'un chemin pour le remplissage
    adSpeed(0.4);
    Modifie la vitesse de l'AlgoDot à 0.4 seconde par centimètre
    adCm(true);
    Lors d'un tracé, la longueur du segment est affichée (ou non)
    adGrid(true);
    Affiche ou cache la grille associée à l'AlgoDot
    adArcTo(2,3,7);
    Trace un arc de cercle de rayon 7 cm avec l'AlgoDot.
    Voici un premier exemple d'algorithme que vous pouvez insérer dans les commandes Geodyn en cliquant sur :
    ##
    adSpeed(0.1); // définit la vitesse de l'AlgoDot à 0,1 seconde par cm
    adGrid(true); // affiche la grille
    adPath(); // Création d'un chemin
    adShow(2,3); // Affiche l'AlgoDot au point de coordonnées (2;3)
    adLocate(2,8); // Déplace et trace un trait avec L'AlgoDot jusqu'au point de coordonnées (2;8)
    adMove(3,0); // Déplace et trace un trait avec l'AlgoDot de 3 cm vers la droite et 0 cm vers le haut
    adDown(5); // Déplace et trace un trait avec l'AlgoDot de 5 cm vers le bas
    adLocate(2,3); // Déplace et trace un trait avec L'AlgoDot jusqu'au point de coordonnées (2;3)
    adPath('#ddddee'); // Termine le chemin en remplissant la forme ainsi créée.
    adHide(); // Cache l'AlgoBot
    ##
    Cliquer sur le bouton démarrer :
    Cliquer sur le bouton démarrer :
    Geodyn est développé par Christophe Hérault qui est professeur de mathématiques à Paris. Si vous avez des questions, des remarques, des commentaires, une demande de tutoriel ou des améliorations à apporter surtout n'hésitez pas à contacter l'auteur par mail :
    geodyn@icloud.com
    Vous pouvez
    si vous souhaitez obtenir les dernières infos concernant Geodyn ou bien si vous souhaitez me contacter tout simplement.
    D'autre part, l'auteur souhaite faire participer les utilisateurs à Geodyn :
    • Si vous souhaitez devenir administrateur d'un forum sur Geodyn
    • Si vous souhaitez gérer un compte twitter sur Geodyn
    • Si vous avez envie de devenir "testeur" officiel de Geodyn
    • Si vous avez envie de participer au développement de Geodyn
    • Si vous voulez rendre compte de votre expérience notamment en classe
    n'hésitez pas à contacter l'auteur.