souris
La commande mouse peut avoir plusieurs interprétations:
1) Invoquée en mode interpreteur elle permet de saisir des
données graphiques.
2) Invoquée en mode interaction elle retourne l´état
instantanné de la souris.
3) comme option de frame,
scale,
text elle
permet de préciser le mode de saisie (clic continu, clic ou continu).
Mode interpréteur
En mode interpréteur mouse passe en mode souris:
Clic gauche: saisie d´un point.
Clic milieu: supprime le dernier point saisi (en mode stream il faut bouger ce bouton).
Menu
Clic droit: donne un menu:
clavier: retour au mode clavier (ou Echap).
screen: efface l´écran.
clic: saisie par clic gauche (par défaut).
stream: saisie continue (gauche enfoncé).
init: efface l´écran et annule la saisie.
Options:
end
func
mouse(n)
poi
validate
mouse end("f"): passe en mode souris en exécutant la fonction f() au retour en mode clavier.
mouse func("f"): asse en mode souris en exécutant la fonction f()
à chaque image.
mouse func(0,"f"): passe en mode souris en exécutant la fonction f()
une seule fois au début du mode souris.
mouse(n): retourne au mode clavier après la saisie de n points.
Exemple: mouse(1): pour saisir un seul point.
mouse(s)poi(0): encadre la souris.
mouse(s)poi(1): encadre la première position et la position actuelle.
mouse(0)poi(2): encadre la première position et la position actuelle, retorne
la première et la dernière position si la souris est relachée, sinon retourne NIL.
mouse(s)poi(p): (p=0), sinon .
Utile pour saisir un cadre dans une image (voir demo1_image.func
dans la fonction func_WIN()).
validate mouse retourne la liste des coordonnées
des points cliqués.
Exemples d´utilisation:
1) generate mouse image(id);
Passe en mode souris, cliquer 2 points, la portion d´image intérieure
au cadre correspondant est stockée dans l´image id.
2) mouse
Passe en mode souris, cliquer gauche pour saisir des points, ..., bouton droite->clavier pour
retourner en mode interpréteur.
p=validate mouse
retourne dans p la ligne polygonale saisie.
Mode interaction
mouse
Retourne: x,y,0,num,down avec:
x,y: coordonnées de la souris -DX/2 <=x < DX/2 et -DY/2 <=y < DY/2
où (DX,DY) = dimensions de l´écran (données par dim screen).
num: numéro du bouton enfoncé: 0 (gauche), 1 (milieu), le bouton de droite donnant
le menu de l´interaction.
down: 1 (un bouton est enfoncé), 0 (aucun bouton n´est enfoncé).
Options:
mouse(0): lecture bloquante (par défaut).
mouse(1): lecture non bloquante.
mouse(2): lecture continue (sans clic).
mouse(x,y)
Modifie la dernière position de la souris en x,y.
Options:
mouse(x,y,n): change le nombre de positions saisies de la souris en n.
acc
Retourne l´accélération (ax,ay,az) du déplacement de la souris
en mode 2.
mouse arc
Affiche les arcs de centre (0,0 et de rayons 90,110 et retourne les coordonnéed du
point cliquéentre les arcs sinon retourne NIL.
Options:
arc(d): rayons d-10 et d+10.
arc(d1,d2): rayons d1 et d2.
col(r1,v1,b1,r2,v2,b2): couleur (blanc par défaut).
mouse(m)
poi(x,y): centre (x,y).
segment: affiche le segment(centre, point cliqué).
disk(r): affiche le disque de rayon r (6 par défaut) au point cliqué,
(blanc ou r2,g2,b2).
average(n)
Retourne la valeur moyenne de la souris sur n images (1 <= n <= 250).
col(r,v,b)
Affiche le cadre ou le disque dans la couleur (r,v,b) (blanc par défaut).
mouse draw
Affiche un cadre à la position courante.
Options:
col(r,v,b): couleur r,v,b (blanc par défaut).
frame(f): n´affiche pas le cadre si f==0.
radius(rx,ry): taille rx,ry (6,6 par défaut).
segment: affiche une croix.
Exemple:
mouse draw frame(0)segment col(0,1,0)radius(12,6);
Affiche une croix verte de taille 24,12.
dist(d)
Ne saisit que des points distants de plus de d. Il est nécesaire de faire:
ini mouse une seule fois avant la saisie.
Voir un exemple dans la fonction func_SOURIS_DISQUE() du fichier
demo1_limit.func.
Pour saisir plusieurs cadres sans ambiguité voir l´option dist.
frame(rx,ry)
Un cadre de dimensions (rx,ry) est affiché à la position
haute de la souris.
ini
Doit être invoqué une seule fois avant mouse dist.
input
Permet de saisir un cadre: clique gauche puis déplacer la souris
avec le bouton gauche enfoncé: un cadre est affiché. Relacher le bouton, la commande
retourneles 4 coordonnées du cadre.
Options:
col(r,v,b): color of the frame (1,1,1 default).
limit (v1,v2)
Si la valeur retournée est de dimension 1, elles est
limitées dans l´intervalle (v1,v2).
Exemple: mouse acc module limit(2,8);
Exemple: mouse speed limit(-10,-10,0, 10,10,0);
mouse limit(x1,y1,x2,y2); ne traite que les points intérieurs au cadre (x1,y1,x2,y2).
Options:
color(r,g,b[,rg,gg,bg]): de couleur r,g,b (blanc par défaut).
dim(nx,ny): le point retourné est un sommet de la grille de nx,ny vases qui est
affichée dans la couleur rg,gg,bg de l´option color (blanc par défaut).
displ(r,v,b): affiche le cadre avec la couleur (r,v,b)
(blanc par défaut).
frame(x1,y1,x2,y2)exec: Retourne (x1,y1,x2,y2) modifié (le coin le plus proche du clic
de la souris prend cette position).
validate: retourne NIL si la souris est hors du cadre (x1,y1,x2,y2),
retourne 0 si un bouton est enfoncé, sinon retourne -1.
Mode
mouse(0): clic non bloquant (par défaut): retourne s si clic gauche (en continu), sinon retourne NIL.
mouse(1): clic bloquant: retourne s à chaque clic gauche, sinon retourne NIL.
mouse(2): à la volée: retourne s (sans clic).
module
Rretourne le module de la valeur retournée.
Exemple:mouse acc module
: retourne le module de l´accélération.
normal
Retourne (x,y,0)
x,y = coordonnées normalisées de la souris entre -.5 et .5
down = 1 (un bouton est enfoncé), 0 (aucun bouton n´est enfoncé).
(-.5,-.5)--|---------(0,-.5,0)------|(.5,-.5)
----------|------------------------|
----------|------------------------|
(-.5,0)---|---------(0,0)----------|(.5,0)
----------|------------------------|
----------|------------------------|
(-.5,.5)---|----------(0,.5)--------|(.5,.5)
mouse normal(x1,y1,x2,y2) retourne la position de la souris normalisée entre (x1,y1) et (x2,y2).
Exemple:
mouse normal(0,0,1,1)
: retourne la position de la souris normalisée entre 0 et 1.
mouse pull: affiche segment(dernière position, mouse up).
mouse radius: retourne le rayon de la souris.
mouse radius=r: modifie ce rayon (12 par défaut).
Remarque: un cercle de rayon r est affiché sur la position de la souris.
mouse speed: retourne la vitesse (vx,vy,0) des déplacements de la souris
en mode 2.
Exemples:
mouse speed limit(-10,-10,-10,10,10,10);
mouse speed module limit(2,8);
mouse speed(0) module limit(2,8);
mouse traj
mouse traj t vol(id)
Retourne la propriété mousede la trajectoire de type t
du volume id.
mouse(c)traj t vol(id)
Modifie cette propriété.
Remarquee:
la trajectoire de type t du volume id est modulée par c * pos,
où pos est la position normalisée de la souris en mode lecture continue.
Exemples
1) mouse disk(50,75,100)
: Retourne la position de la souris
limitée au disque de centre (50,75) et de rayon 100.
2) Voir la fonction func_func_SOURIS_DISQUE() du fichier
demo1_limit.func.
Pour saisir plusieurs rayons de disques sans ambiguité voir l´option dist.
limit(x1,y1,x2,y2): ne considère que les points intérieurs à
la fenêtre (x1,y1,x2,y2).
Souris dynamique
mouse dynamic
Stocke un échantillons.
compute
Lorsque n échantillons ont été stockés l´analyse
des propriétés dynamique de la souris sont calculées.
mouse dynamic displ
La courbe mémorisée est affichée (en blanc) ainsi que la tangente (en rouge),
la normal (en vert) et le cercle de courbure(centré au centre de courbure et de rayon le rayon de courbure).
mouse dynamic dim
Retourne le nombre de valeurs affichées.
mouse dynamic dim(n)
Modifie ce nombre.
mouse dynamic adjust
Retourne le coefficient d´ajustement.
mouse dynamic ajsut(1)
Modifie ce coefficient.
Remarque:
La saisie d´un point est ajustée en fonction des 2 saisies précédentes.
mouse dynamic col
Retourne les couleurs de la courbe, de la tangente et de la normal.
mouse dynamic col(rc,vc,bc, rt,vt,bt, rn,vn,bn)
Modifie ces couleurs.
mouse dynamic dim
Retourne le nombre d´échantillons stockés.
mouse dynamic dim(n)
Déclare un buffer stockant l´analyse dynamique de la souris sur n échantillons (n >= 3).
Remarque:
Il est nécessaire d'invoquer cette commande pour lancer la souris dynamique (dim(15) est une bonne valeur).
mouse dynamic dist
Retourne la distance minimum de 2 échantillons stockés (5 par défaut).
h3>mouse dynamic dist(d)
Modifie cette distance.
mouse dynamic end
Pour sortir proprement du mode souris dynamique.
mouse dynamic line
Retourne le buffer 3D (t,x,y) des n valeurs stockées.
mouse dynamic limit
Retourne la limite de la saisie.
mouse dynamic limit(x1,y1,x2,y2)
Limite la saisie au cadre (x1,y1,x2,y2).
Options:
limit(x1,y1,x2,y2,r,v,b): affiche le cadre dans la couleur (r,v,b) (blanc par défaut).
mouse dynamic smooth
Retourne le coefficient de lissage.
mouse dynamic smooth(d)
Modifie ce coefficient.
Remarque:
Les points éloignés de plus de d seront lissés.
mouse dynamic normal
Retourne le vecteur unitaire de la normale à la souris.
mouse dynamic radius
Retourne le rayon de courbure.
mouse dynamic tan
Retourne le vecteur unitaire tangent à la souris.
mouse dynamic time
Retourne le tempo (1000 par défaut).
mouse dynamic time(t)
Modifie ce tempo.
Remarques:
1) La 1ère composante est le temps en 1/tempo de secondes auquel a été saisi
l´échantillon.
2) Cette commande modifie la periode.
3) Une bonne valeur est 1000.
mouse dynamic var
Retourne la longueur de la ligne stockée.
mouse dynamic speed
Retourne la vitesse curviligne.
Menu souris
mouse menu("MEN")
Retourne le mode de saisie de la souris pour le
menu("MEN") (1 par défaut, c´est à dire clic).
mouse menu("MEN")=s
Modifie ce mode.
Remarque:
mouse menu("MEN")=s1,s2,...
permet d´affecter un mode particulier pour chaque case.
mouse vol
mouse vol
Actile l´opération de désignation (picking) pour toutes
les structures d´ancrage de volumes. for et retourne (v, s)
avec v = numéro du volume et s = numéro du sommet
cliqué, sinon NIL.
Options:
col(0,0,0)inv: restitue la couleur noire pour les volumes.
dim(d): épaisseur du curseur (-1: automatique).
image(im1,im2): images de debuging.
vol(id): seulement pour la structure d´ancrage de leader id.
pull: modifie les sommets désignés en déplaçant
la souris.
radius(r): taille du curseur.
voir demo1_mouse.func.
radius(r): modofie le rayon de la désignation.
Voir aussi: