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
Répondre
martinAcosta
Messages : 344
Enregistré le : lun. avr. 28, 2014 8:06 pm

changer aspect d'un point

Message par martinAcosta »

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
Messages : 373
Enregistré le : sam. nov. 03, 2007 3:33 pm
Localisation : Toulouse

Re: changer aspect d'un point

Message par monique31 »

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
Messages : 344
Enregistré le : lun. avr. 28, 2014 8:06 pm

Re: changer aspect d'un point

Message par martinAcosta »

Merci Monique

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

monique31
Messages : 373
Enregistré le : sam. nov. 03, 2007 3:33 pm
Localisation : Toulouse

Re: changer aspect d'un point

Message par monique31 »

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

Code : Tout sélectionner

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

Code : Tout sélectionner

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 : Tout sélectionner

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
Messages : 373
Enregistré le : sam. nov. 03, 2007 3:33 pm
Localisation : Toulouse

Re: changer aspect d'un point

Message par monique31 »

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 : Tout sélectionner

E1.setHidden(2);"prog"

Code : Tout sélectionner

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

martinAcosta
Messages : 344
Enregistré le : lun. avr. 28, 2014 8:06 pm

Re: changer aspect d'un point

Message par martinAcosta »

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
Messages : 373
Enregistré le : sam. nov. 03, 2007 3:33 pm
Localisation : Toulouse

Re: changer aspect d'un point

Message par monique31 »

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.

Répondre