changer aspect d'un point

Ce thème à lui tout seul mérite la création de ce forum tant il est riche et subtil : faire des curseurs, construire des figures booléennes ou juste faire de l'analyse, c'est un thème fabuleux
Post Reply
martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

changer aspect d'un point

Post by martinAcosta » Thu Sep 22, 2016 10:59 pm

Bonjour

J'aimerais controler depuis une expression l'etat visible ou caché d'un point, ainsi que l'activation de sa trace, si certaines conditions sont vraies.

Est-il possible? Des conseils?

Merci

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

Re: changer aspect d'un point

Post by monique31 » Mon Sep 26, 2016 6:23 pm

Quelques idées, avec l'exemple de la médiatrice de A et B.
- On crée un point M quelconque
- puis un point P de coordonnées [x(M),y(M)], dont on active la trace.
- et on termine par le script suivant, attaché au point M, dans l'onglet "déplacé" :
Image

A tester ici :


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

Re: changer aspect d'un point

Post by martinAcosta » Sat Oct 01, 2016 3:09 pm

Merci Monique

Est-ce possible de faire cela avec une expression, sans utiliser le blockly?

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

Re: changer aspect d'un point

Post by monique31 » Tue Oct 11, 2016 11:19 am

Oui, c'est tout à fait possible.
Ici on a créé deux expressions, E1 et E2 respectivement :

Code: Select all

abs(d(M,A)-d(M,B))<0.1

Code: Select all

P.setHidden(1-E1);"prog"

Bien évidemment, on aurait pu grouper ces deux expressions en une seule.
Et puis pour rendre cette expression définitivement invisible dans la fenêtre remplacer "prog" par la chaîne de caractères vide ""
La syntaxe pour ce genre d'expressions se trouve ici :

Code: Select all

A.setHidden(E1); "program" pour cacher/montrer : l'expression vaut 0 ou 1.
Poly1.setOpacity(E3); "program" pour jouer sur la transparence : l'expression est un décimal compris entre 0 et 1.
Poly1.setRGBColor(r,g,b); "program" pour choisir la couleur RGB : r, g et b sont des entiers entre 1 et 256.
S1.setPrecision(E5); "program" pour jouer sur la précision de l'affichage numérique : l'expression est un entier compris entre 0 et 10.
A.setFontSize(E6); "program" pour choisir la taille de la police : l'expression est un entier compris entre 6 et 60.
B.setShowName(E7); "program" pour afficher/cacher le nom : l'expression vaut 0 ou1.
S1.setSize(E9); "program" pour choisir l'épaisseur : l'expression est un décimal compris entre 0,5 et 25.
Poly1.setLayer(E8);"program" pour choisir un niveau de calque : l'expression est alors un nombre entier compris entre 0 et 10.
S1.setDashed(E1); "program" pour choisir le trait plein/pontillé : l'expression vaut 0 ou 1.
C.setxy(E8,C.gety()); "program" pour imposer l'abscisse d'un point (dans cet exemple l'ordonnée est inchangée).

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

Re: changer aspect d'un point

Post by monique31 » Thu Oct 13, 2016 10:59 am

Petite correction à propos de la syntaxe du dernier post, relative au "cacher" des éléments. L'expression peut valoir 0, 1 ou 2 !
Le 2 correspond au "super-caché" : dans ce cas la bascule-gomme ne montre plus rien.

Code: Select all

E1.setHidden(2);"prog"

Code: Select all

A.setHidden(2);""
Voilà comment super-cacher très rapidement des éléments de la figure.

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

Re: changer aspect d'un point

Post by martinAcosta » Sat Oct 15, 2016 3:45 pm

Superb Monique, merci beaucoup.

Une derniere question:
Est il possible d'ajouter des commandes dans une meme expression, par exemple pour definir létat (visible/caché) de plusieurs points?
Je viens d'essayer en ecrivant P.setHidden(1-E1); Q.setHidden(1-E2); "prog", mais dgpad ne la reconnait pas...

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

Re: changer aspect d'un point

Post by monique31 » Sat Oct 15, 2016 7:24 pm

Oui c'est possible de mettre de nombreuses commandes séparées pas des points-virgule, à condition de ne mettre aucun espace dans toute cette écriture. Il semblerait que tu en a mis, d'où le blocage.

Post Reply