Créer booléen qui teste l'existence d'un objet

Stéphanie Thinet shared this question 1 year ago
Answered

Bonjour,

Je n'arrive pas à créer un booléen qui enverrait "true" dès qu'un objet nommé poly1 serait créé.

Je ne pense pas que ce soit possible avec la ligne de saisie mais je n'ai pas non plus réussi avec Javascript.

J'ai essayé :


function ggbOnInit() {
ggbApplet.debug("ggbOnInit");
ggbApplet.registerAddListener("NouvObj");
}

function NouvObj(obj) {
    if (type == "polygon") {
        test1 = exists("poly1");
}
}

Quelle solution puis-je utiliser ? Merci par avance.

Comments (27)

photo
1

Coucou Stéph,


tu le trouves comment ton type ;-) :-)


type=ggbApplet.getObjectType(obj);

photo
1

ET, je ne sais si cela figure quelque part dans la doc, a priori en tout cas pas dans la doc française


le type "polygon" démarre à 7 côtés


avant les types sont "triangle", quadrilateral", "pentagon" et "hexagon"

photo
1

Salut Noël,

Quoi, le type n'arrive pas tout seul ? ;-)

Si le type polygon démarre à 7 côtés, je vais avoir besoin d'un OU. Du genre :

type == ("polygon" or "hexagon" or "pentagon" or "quadrilateral" or "triangle")
Il faudra que j'essaye ça. J'ai été embêtée car les noms ne sont pas les mêmes sur l'appli en ligne : au lieu d'être nommés poly1 et poly2, j'avais des q1 et q2 :-/

Merci en tout cas !

photo
1

Bonjour,

Ce serait quand même bien pratique si GGb affichait, si on le souhaite, les polygones ayant moins de 7 côtés comme étant des.. polygones. Il y a là sans doute pas grand chose à modifier au programme non ?

photo
1

je ne sais pas quand cette "amélioration" a été apportée ... avant il y avait effectivement un type unique "polygon"


ce qui est débile car incohérent c'est que si tu utilises l'outil Polygone régulier, par ex pour un carré, tu ne vas pas obtenir un "quadrilateral" mais un "polygon"


j'avais noté en 2017 les sous-types de "conic"


Note : Attention à ne pas réduire les objets concernés à un seul type "Conique" comme cela est affiché dans Algèbre !!

Les objets créés sont de 6 types GGb : circle, arc, sector, ellipse, hyperbola et parabola.

photo
1

J'ai beau fouiller dans les fichiers Reference:***XML**** par ex. https://wiki.geogebra.org/e...


je ne lis nulle part la notification des sous-types


et si je lis le xml d'un fichier je n'y trouve aucune différence dans la description de l'objet ..

photo
1

J'aimerais bien moi aussi résoudre ce problème car l'exercice suivant que propose Stéphanie est un truc à faire :

https://www.geogebra.org/m/...

mais pour l'instant ça ne marche pas

photo
1

comment ça ???


c'est moi qui ai fait le script et il fonctionne ! (si tu as trouvé une situation où il y a pb, merci de la décrire - les polygones croisés sont à part)


(mais comme il est en "onInit()", il faut raffraichir la PAGE à chaque nouvel essai)

photo
1

Ben quand je rafaîchis les figures disparaissent, ça ne me donne jamais la réponse. Et le fichier téléchargé ne fonctionne pas non plus, ou alors je m'y prends mal

photo
1

Normal que si tu rafraîchis les figures disparaissent

photo
1

un cas tordu ;-) :-) à ne pas faire par des élèves


/8HRW4IzDV4J4YAAAAASUVORK5CYII=

photo
1

en ligne il y a un bouton vérifier, je clique, ça affiche "variable q2 non définie"

photo
1

oh la la tu ne dois pas être sur le lien que tu as mis plus haut, ou alors, il faut vider ton cache

photo
1

j'ai réessayé, ça ne marche toujours pas, mais le bouton Vérifier n'est plus là

photo
1

Oui il marche.

Mais ce serait mieux que le message change au fur et à mesure qu'on déplace des sommets.

photo
1

Oui, mais cela suppose je pense une refonte complète du fichier, je suis parti sur la demande de Stéphanie, testant les créations de polygones, donc un mouchard dans l'onInit


Pour ta remarque, je pense qu'il faut proposer au départ 2 polygones (nombre de sommets fixé) avec des scripts d'actualisation pour comparer les aires et périmètres

photo
1

comme ça (sans scripts d'actu)


https://www.geogebra.org/m/ywwcbkjj

photo
1

Cette version est moins bien "pédagogiquement parlant"

Je connais bien les "réactions" des élèves : la plupart ici va déplacer les sommets jusqu'à trouver la réponse (message en vert) sans réfléchir... et peut-être (peut-être...) après vérifier

La première version amène les élèves à "réfléchir"..!


C'est un peu ce qui se passe avec internet. Devant une question posée, les élèves (mais nous aussi..!) vont chercher les solutions sur internet (elle y est toujours...), et le temps de recherche (tellement fondamental...) n'existe plus...

photo
1

alors le proposer en version démo (pour l'enseignant ?)


https://www.geogebra.org/m/ddfmyjwh

photo
1

Je propose une autre piste, assez tordue, mais pourquoi pas. Comme il y a peu de points sur le réseau quadrillé utilisé, on les crée tous d'abord, au préalable, par exemple avec la commande Séquence.

Puis on les cache (objet fixe, taille minimale, couleur de la grille).

Sur chacun d'eux ont met un script. Pour le point A on met :

SoitValeur(M, A)

SoitValeur(liste,Ajouter(liste,M))

De sorte que tous les points sont enregistrés dans la liste.


Ensuite on peut trier la liste par rapport aux deux points qui apparaissent en double, de façon à isoler les deux polygones.


Dans le fichier ci-joint il n'y a que 4 points sur la grille (A, B, C et D).

Le bouton "lire la consigne" servira (aussi) à initialiser.

Files: test.ggb
photo
1

j'attends ton "ensuite" ;-)

photo
1

Le voilà !

Y a-t-il la possibilité d'automatiser l'écriture des scripts pour les points du quadrillage ?

Et peut-on faire en sorte que les nouveaux objets créés ne soient visibles que sur graphique 2, et pas sur graphique ? Ou li'nverse

photo
1

je vois bien des listes qui se remplissent ou se vident (poly1 si on reclique pour poly2 sur des points déjà dans poly1) mais pas de polygones qui se créent

photo
1

Les polygones on s'en fiche un peu du moment qu'on a les points. J'ai ajouté le calcul des aires et des périmètres des deux polygones, et dans le bouton j'efface les segments pour recommencer.

Ah ! pratique la commande EFFACER, qui ne bug pas lorsque le segment n'existe pas.


Bon il faut pour que ça marche que les deux polygones n'aient pas de sommet commun

photo
1

tiens encore une belle surprise avec les types

Polygone( {(4, 0), (6, 0), (6, -2), (4, -2), (4, 0)}) > Pentagone

photo
1

oui j'avais remarqué

photo
© 2022 International GeoGebra Institute