tests

Toute question à propos de l'utilisation de DGPad.
Post Reply
martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

tests

Post by martinAcosta » Sat Mar 14, 2015 3:10 am

Bonjour

J'ai besoin de tests comme ceux de CaRMetal (parallélisme, appartenance...)

Peut-on faire des macros sur DGPad pour les tests?

Quelqu'un pourrait me donner des idées?

Merci

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Tue Mar 17, 2015 5:01 pm

Il y a déjà une macro-test sur l'alignement de trois points. C'est celle qui à partir de 3 points initiaux donne comme objet final l'expression :

Code: Select all

var txt="Les points "+P1.getName()+", "+P2.getName()+" et "+P3.getName()+" ";(abs(y((P2-P1)/(P2-P3)))<0.000000000001)?txt+" sont alignés":txt+" ne sont pas alignés"
Pour les autres tests, on peut réfléchir dans ce sens. Seulement dans CaRMetal pour une droite d1, x(d1) et y(d1) renvoyaient les coordonnées d'un vecteur directeur de d1 (de norme 1). Je ne sais pas comment faire quelque chose de semblable avec DGPad.

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: tests

Post by martinAcosta » Tue Mar 17, 2015 10:12 pm

Merci Monique

Pourrais tu m'expliquer comment marche cette macro? surtout comment faire pour afficher un texte quand le test est positif et un autre quand il est negatif.

J'ai besoin urgent d'un test de parallélisme... peut etre en travaillant avec les complexes?

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Wed Mar 18, 2015 5:08 pm

Pour écrire un texte conditionnel, une syntaxe possible de DGPad est la suivante :
(<condition>)?"<texte si vrai>":"<texte si faux>"

Ainsi j'ai fabriqué une macro pour le test du parallélisme
Deux droites L1 et L2 étant créées, leur point d'intersection (ici P5) également, j'ai créé cette expression :

Code: Select all

(abs(x(P5))+abs(y(P5)))>1000000?"Les droites sont parallèles":"Les droites ne sont pas parallèles" 
puis la macro avec comme initiaux L1 et L2 et comme final cette expression.



On peut tester sur la figure ci-dessous avec la macro "Parallèles ?"
Petit problème : le "rafraichissement" du texte n'est pas parfait (dans le cas du parallélisme) : il faut faire un rapide zoom-anti-zoom pour que le bon texte apparaisse !!!
A suivre donc ...

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Wed Mar 18, 2015 5:35 pm

Amélioration de la macro précédente, avec cette expression-programme :

Code: Select all

var txt="Les droites "+L1.getName()+", "+L2.getName()+" ";(abs(x(P5))+abs(y(P5)))>1000000?txt+" sont parallèles":txt+" ne sont pas parallèles"
Avantage par rapport à la précédente : le texte est dynamique, c'est à dire que le nom des droites est aussi affiché.
Mais on a toujours le défaut de rafraichissement.
On peut tester ci-dessous avec la macro "Droites parallèles ?"


monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Wed Mar 18, 2015 6:25 pm

J'oubliais : on n'est pas obligé de refaire une macro déjà existante. Pour incorporer une macro d'une figure DGPad dans une autre figure DGPad, il suffit d'ouvrir le fichier de la première figure dans un éditeur de texte, de copier ce qui est relatif à la macro considérée, puis de le copier au début du texte de l'autre figure. Ici ce serait :

Code: Select all

// Macros :
$macros={};
$macros["Droitesparalleles"]={
	name:"Droites parall\u00e8les ?",
	parameters:["line","line"],
	exec:
	function (L1,L2){
P5=OrderedIntersection("P5",L2,L1,0);
E1=Expression("E1","","","","var txt=\"Les droites \"+L1.getName()+\", \"+L2.getName()+\" \";(abs(x(P5))+abs(y(P5)))>1000000?txt+\" sont parall\u00e8les\":txt+\" ne sont pas parall\u00e8les\"","-5.3125","3.9125");
STL(E1,"c:#41271d;s:7;f:24;p:4;cL:200;cPT:YzojNzgwMDEzO3M6MTA7ZjozMA==");
return [E1];
}};
Sauf les deux premières lignes bien entendu s'il y a déjà des macros perso présentes.

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: tests

Post by martinAcosta » Wed Mar 18, 2015 8:52 pm

Merci Monique

Je viens de tester, et la macro renvoi toujours le texte 'ne sont pas paralleles'...

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Wed Mar 18, 2015 11:07 pm

Mais si après que le texte s'affiche on fait rapidement un zoom- antizoom, le texte change et devient le bon !!!
C'est très étrange ...
Il va falloir soumettre ça au développeur :wink:

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: tests

Post by martinAcosta » Thu Mar 19, 2015 2:29 am

Si j'ai bien compris, je dois ajouter le texte de la macro au fichier texte de la figure....

Donc ces macros la on ne peut pas les creer avec l'outil macro de DGPad?

Le texte est affiché toujours au meme endroit? Peut-on le definir?

Merci

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Thu Mar 19, 2015 7:48 am

Si j'ai bien compris, je dois ajouter le texte de la macro au fichier texte de la figure....
Donc ces macros la on ne peut pas les creer avec l'outil macro de DGPad?
Bien sûr que ces macros se font avec l'outil macro de DGPad ! Je voulais simplement expliquer qu'il n'y a pas encore de bibliothèque de macros comme dans CaRMetal. Alors si on ne veut pas refaire la macro à chaque fois c'est un moyen simple de récupérer une macro incluse dans un autre fichier.
Le texte est affiché toujours au meme endroit? Peut-on le definir?
Il faudrait essayer : en "ancrant" (avec l'outil ancre) le texte objet final à un point de la figure qui devra être choisi comme objet initial supplémentaire. Alors le texte se place où on veut.

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: tests

Post by martinAcosta » Thu Mar 19, 2015 12:25 pm

Merci pour ta reponse, et excuse-moi d'insister, mais je n'arrive pas a m'imaginer comment créer la macro, s'il faut ecrire une ligne de code pour les textes.

D'apres ma comprehension du fonctionnement de DGPad on fait une construction, puis on clique sur l'icone 'macro', on signale des objets initiaux et DGPad ajoute automatiquement les objets finaux qui en dependent. Alors on peut en supprimer quelques uns et definir la macro.

Dans ce procede je ne vois pas comment mettre le conditionnel... je suis peut-etre un peu borné, mais j'ai besoin de plus de details.

Merci

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Thu Mar 19, 2015 5:10 pm

Alors je vais expliquer (en même temps que je le fais sur ma tablette) la construction de la macro-test : point qui appartient ou non à une droite.
1- Je construis une droite L1, un point A hors de la droite, la perpendiculaire à L1 passant par A ; puis le point d'intersection H entre L1 et cette perpendiculaire.
2- Je choisis l'outil expression et je fais un "tap" sur la ligne du champ d'entrée (un curseur clignote).
3- ensuite je complète grâce au clavier de la calculatrice ou du clavier classique suivant le cas :

Code: Select all

(d(A,H)<0.00001)?"Le point appartient à la droite":"Le point n'appartient pas à la droite"
Et je n'oublie pas de valider !
Important : tout se fait avec le clavier de la calculatrice (même le ? et les deux points), le A et le H s'obtenant par un tap sur les points ; sauf les guillemets et ce qui est à l'intérieur qui se font clavier de la calculatrice baissé, donc avec le clavier classique.

4- Enfin j'utilise l'outil macro :
* taps sur : la droite L1, le point A et le texte (en principe affiché dans la fenêtre). L1 et A sont devenus verts, ce qui signifie que ce sont des objets initiaux. Le texte est devenu rouge, ce qui signifie qu'il est pris comme objet final. Tout le reste est pris automatiquement comme objets intermédiaires et sera caché à l'execution de la macro.
* Je donne un nom à la macro dans la zone macro sans nom et je n'oublie pas de valider avec "Accéder"

Et c'est fini !!!
J'espère ne rien avoir oublié dans les explications.

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: tests

Post by martinAcosta » Sat Mar 21, 2015 12:30 am

Merci Monique, tu es bien explicite.

Toutefois, j'ai encore une question. J'arrive au point ou il faut ecrire une expression, mais je ne trouve pas les guillemets dans le clavier DGPad!

monique31
Posts: 373
Joined: Sat Nov 03, 2007 3:33 pm
Location: Toulouse

Re: tests

Post by monique31 » Sat Mar 21, 2015 9:24 am

Les guillemets ne sont pas dans dans le clavier DGPad (celui qui est lié à l'outil expression), mais dans le clavier classique, celui qui permet de taper les lettres par exemple.
Pour passer de l'un à l'autre il suffit de faire un tap la petite icône qui représente un clavier :
Image
Et sur l'iPad, une fois le clavier classique affiché, petit tap sur l'icône "?123" qui donne d'autres symboles. Avec Android je ne sais pas.

Post Reply