CaRMetal-FR

Forum des utilisateurs francophones
login.php?sid=91b89dcde18f05a06a0d9f79c6f5c494 profile.php?mode=register&sid=91b89dcde18f05a06a0d9f79c6f5c494 faq.php?sid=91b89dcde18f05a06a0d9f79c6f5c494 memberlist.php?sid=91b89dcde18f05a06a0d9f79c6f5c494 search.php?sid=91b89dcde18f05a06a0d9f79c6f5c494 index.php?sid=91b89dcde18f05a06a0d9f79c6f5c494

Traces d'objets - Gestion sous Javascript

 
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Utilisation de CaRMetal
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
felfra



Inscrit le: 07 Fév 2012
Messages: 4
Localisation: Marseille

MessagePosté le: Mar Fév 07, 2012 4:45 pm    Sujet du message: Traces d'objets - Gestion sous Javascript Répondre en citant

Bonjour,

Je découvre depuis quelques jours CaRMetal, Qui me semble être un excellent logiciel de géométrie dynamique. Différents outils permettent d'animer les figures, dont, j'en viens à l'objet de ce post, les traces d'objets.

Cependant, si dans un script (JS) il est possible de cacher ou supprimer un objet, je n'ai pas trouvé la méthode pour en effacer la trace, ce qui est possible par le menu Edition. Est-ce qu'une telle commande javascript existe ?

je voudrais aussi savoir si, toujours dans javascript, il est possible de passer à CarMetal des raccourcis clavier, ce qui pourrait être une solution à mon problème... et à d'autres Smile .

D'avance merci pour vos réponses.

felfra
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
mohjer



Inscrit le: 10 Juin 2009
Messages: 56
Localisation: Tunis

MessagePosté le: Mer Fév 08, 2012 11:03 am    Sujet du message: Répondre en citant

Bonjour,

Citation:
si dans un script (JS) il est possible de cacher ou supprimer un objet, je n'ai pas trouvé la méthode pour en effacer la trace, ce qui est possible par le menu Edition. Est-ce qu'une telle commande javascript existe ?


Bien sur il existe une commande javascript qui est " PenDown" suivi du nom de l'objet et de false (un booléen) si on veut que l'objet cesse de laisser une trace.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
felfra



Inscrit le: 07 Fév 2012
Messages: 4
Localisation: Marseille

MessagePosté le: Mer Fév 08, 2012 3:03 pm    Sujet du message: Répondre en citant

Merci, mohjer, pour votre réponse.

Cependant, PenDown(Obj, "false") désactive la trace d'un objet, qui cesse donc d'en laisser une. Comme le fait la commande de menu "Edition/Désactiver les traces".

Mais mon problème concerne l'effacement des traces existantes, comme le fait la commande "Edition/Effacer les traces" (raccourci clavier ctrl-T). Ce n'est pas la même chose...

Cordialement,

felfra
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
monique31



Inscrit le: 03 Nov 2007
Messages: 297
Localisation: Toulouse

MessagePosté le: Jeu Fév 09, 2012 9:31 am    Sujet du message: Re: Traces d'objets - Gestion sous Javascript Répondre en citant

felfra a écrit:
je n'ai pas trouvé la méthode pour en effacer la trace, ce qui est possible par le menu Edition. Est-ce qu'une telle commande javascript existe ?

Non, il n'existe pas de telle commande. Mais une trace disparait quand on effectue un zoom ou une translation de la figure ... même pendant l'exécution d'un script.
felfra a écrit:
je voudrais aussi savoir si, toujours dans javascript, il est possible de passer à CarMetal des raccourcis clavier, ce qui pourrait être une solution à mon problème... et à d'autres Smile .

Non, pas de raccourcis clavier dans javascript.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
felfra



Inscrit le: 07 Fév 2012
Messages: 4
Localisation: Marseille

MessagePosté le: Ven Fév 10, 2012 8:59 am    Sujet du message: Répondre en citant

Merci Monique,

J'ai tout de même trouvé une une solution à mon problème. Je cherchais en fait, pour bien montrer la construction de figures un peu compliquées, à mettre en évidence la construction des différents éléments. Non seulement leur succession, avec temporisation, mais aussi l'apparition progressive de chacun d'eux.

Par exemple, pour un cercle, au lieu d'utiliser la fonction "circle", je programme l'affichage du centre, puis d'un point du (futur) cercle, et déplace celui sur toute la (future) circonférence, la trace dessinant le cercle complet, en quelques secondes, et enfin j'appelle la fonction "circle" pour créer l'objet cercle dont j'aurai ultérieurement besoin. Mais ensuite, impossible, donc, de supprimer la trace dans le script. Et je ne peux pas la conserver, car les attributs (couleur, épaisseur) de la trace (du point) et du cercle ne doivent pas toujours être identiques.

Finalement, en compliquant un peu la programmation, je n'utilise plus la trace, mais la remplace par un arc défini par le point de départ sur la circonférence, le point que je déplace sur la circonférence, et un troisième point à mi-chemin des deux autres. A chaque déplacement du point, l'arc "suit" dynamiquement.

Evidemment, comme l'opération doit se répéter plusieurs fois dans le script, il vaut mieux créer une fonction à cet effet.

Bonne journée Smile
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
alain974



Inscrit le: 13 Juin 2009
Messages: 144
Localisation: Réunion

MessagePosté le: Sam Fév 25, 2012 6:13 am    Sujet du message: Répondre en citant

Bonjour, pour effacer les traces sur le graphique on peut zoomer un petit coup, ce qui réinitialise l'affichage de la figure (en enlevant les traces). Pour faire la même chose en JavaScript, on peut réinitialiser la figure en JavaScript, avec l'algorithme suivant:

1) On récupère la figure à initialiser, et on la stocke dans une variable ZC (comme Zirkel Canvas);
2) On lui demande poliment de se réinitialiser, ce qu'elle fait avec diligence parce qu'elle a une méthode qui fait ça (et qui est appelée par le zoom).

Ça donne ceci:

Code:
ZC=getZC();
ZC.resetGraphics();


Du coup, ce post aurait dû figurer dans la rubrique "CaRScripts" qui a soif de ce genre de questions...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
mohjer



Inscrit le: 10 Juin 2009
Messages: 56
Localisation: Tunis

MessagePosté le: Sam Fév 25, 2012 8:39 am    Sujet du message: Répondre en citant

Bonjour Alain,

Super le code pour effacer la trace! Merci Alain; j'étais presque sur qu'il y avait un truc pour effacer contrairement à ce que disait Monique "Non, il n'existe pas de telle commande."
je cherchai depuis deux semaines en vain, finalement on est sauvé;
je l'ai essayé et ça marche;
voici le script auquel j'ai ajouté le petit bout de code fourni :

h=Point("A",3,-2);
h=Point("B",3,1);
for(i=0;i<10;i++){
x=-2+Math.random();
y=-1+Math.random();
Move("A",x,y);
PenDown("A",true);
x=2+Math.random();
y=1+Math.random();
Move("B",x,y);
PenDown("B",true);
Pause(500);
}
ZC=getZC();
ZC.resetGraphics();




Encore merci Alain
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
felfra



Inscrit le: 07 Fév 2012
Messages: 4
Localisation: Marseille

MessagePosté le: Sam Fév 25, 2012 4:48 pm    Sujet du message: Répondre en citant

Désolé, Alain, je n'ai pas vu arriver votre réponse, je vous en remercie. Et merci Mohjer, pour le complément.

Effectivement, votre solution est simple et efficace. Je la note soigneusement, car elle m'aurait économisé quelques jours d'efforts, passé à créer des fonctions, pour tracer progressivement des cercles ou arcs, simulant des traces, que je pouvais ensuite effacer.
Maintenant, grâce à vous, j'ai bien plus simple Smile .

Encore merci

felfra
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
alain974



Inscrit le: 13 Juin 2009
Messages: 144
Localisation: Réunion

MessagePosté le: Dim Fév 26, 2012 7:07 am    Sujet du message: Répondre en citant

mohjer a écrit:
voici le script auquel j'ai ajouté le petit bout de code fourni :


En fait, PenDown imite le comportement de la tortue LOGO, qui a un stylo dans la bouche, et PenDown baisse le stylo pour que les tracés soient visibles. Il n'est donc pas nécessaire de modifier 10 fois cette variable. Je propose la modification suivante:

Code:
h=Point("A",3,-2);
h=Point("B",3,1);
PenDown("A",true);
PenDown("B",true);
for(i=0;i<10;i++){
    x=-2+Math.random();
    y=-1+Math.random();
    Move("A",x,y);
    x=2+Math.random();
    y=1+Math.random();
    Move("B",x,y);
    Pause(500);
}
PenDown("A,B",false);
ZC=getZC();
ZC.resetGraphics();


Pour l'instant le seul moyen de savoir tout ce qu'on peut faire avec ces geekeries est de consulter le code source de CaRMetal. Jusqu'à ce que quelqu'un ait le temps de faire un document à l'usage des développeurs...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
mohjer



Inscrit le: 10 Juin 2009
Messages: 56
Localisation: Tunis

MessagePosté le: Dim Fév 26, 2012 2:27 pm    Sujet du message: Répondre en citant

Bonjour,

Pour le dernier script d'Alain, deux guillemets manquantes,une petite correction pour éviter une perte de temps:
PenDown("A","B",false); à la place de PenDown("A,B",false);
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    CaRMetal-FR Index du Forum -> Utilisation de CaRMetal Toutes les heures sont au format GMT
Page 1 sur 1

 
  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Traduction par : phpBB-fr.com