Choose a langage

or Auto Translate

Évolution du logiciel CaRMetal

CaRMetal est disponible sur ce site depuis le 28 Octobre 2006. Le blog ci-dessous donne un aperçu de l'évolution du logiciel.

CaRMetal 4.1.3

La tortue 2D et la tortue 3D peuvent désormais être utilisées dans une figure 3D.
C'est la nature du point auquel on attache la tortue qui détermine la nature de la tortue.

D'après une idée d'Alain Busser, le mouvement de la tortue a été "fluidifié" (pour une vitesse inférieure à 100, qui est la vitesse maximale).
Plus la vitesse est faible, plus la tortue décompose son mouvement, y compris pour tourner. Il s'agit d'une fonctionnalité purement cosmétique.

CaRMetal 4.1.2

La sortie de cette version est justifiée par une modification du comportement des CaRCommandes tortue Avancer() et Reculer().

Désormais, ces CaRCommandes renvoient le nom du dernier point et le nom du dernier segment créés sous forme d'un tableau Javascript (de dimension 2).
Autrement dit, on écrira :

  • p = Avancer(...)[0] pour récupérer le nom du point;
  • p= Avancer(...)[1] pour récupérer le nom du segment.

Si nécessaire, on crée un tableau qui contient les deux noms (pour ne pas appliquer deux fois la commande Avancer), comme pour la CaRCommande ExécuterMacro.
Les deux premiers paramètres (optionnels) de la fonction Avancer sont : le nom du point et le nom du segment.

Par ailleurs, on a ajouté la CaRCommande Libérer (redondante avec MettreFixe, mais plus simple).

CaRMetal version 4.0.2

Pour plus d'information sur la 3D, on peut consulter cet article sur mathémaTICE.

Cette version corrige un certain nombre de petits bugs :

  • système de recopie automatique des champs y3D et z3D;

  • lorsque qu'un point était attaché à un segment 3D, ses coordonnées restaient modifiables;

  • affichage des cordonnées 3D lors du preview;

  • en vue d'avion, de gauche, etc certaines coordonnées du genre 5.4564E-17 ont été fixées à 0;

  • problèmes collatéraux à la version française dans l'affichage des textes;

  • les macros de menu plan médiateur ne fonctionnaient pas dans certaines situations : elles ont été remplacées par une seule macro plan médiateur beaucoup plus légère (le "plan" est dilatable mais non tournant);

  • activation de la version francaise via le mode débutant de l'assistant de script;

 

Nouveautés :

  • le fichier de base pour la 3D a été optimisé (certains objets construits étaient inutiles);

  • la CaRCommande Move fonctionne désormais en 3D avec le paramètre supplémentaire attendu (troisième coordonnée);

  • amélioration du point 3D sur objet;

  • en 3D, le point O et les trois vecteurs de base et leurs extrémités ont été rendues ni supprimables ni renommables;

  • la vue d'avion a été modifié pour obtenir les axes en position "habituelle"; on a ajouté une vue de gauche;

  • on a ajouté les macros de menu suivantes : Plan parallèle Plan par Point, Plan perp Droite par Point, Droite parallèle Droite par Point;
    Remarque : pour obtenir les bonnes macros de menu sur Mac, on pourra si besoin se référer à ce passage sur les instructions d'installation;

  • on peut désormais écrire les CaRCommandes Point("A") ou Point3D("A") qui créent un point A aléatoirement, mais visible dans la fenêtre.

  • préservation des préférences lors de la création d'une nouvelle fenêtre 3D;

  • la couleur de fond de la figure (en 2D et en 3D) est désormais enregistrée; lors de la création d'une nouvelle figure, c'est cette couleur de fond qui sera utilisée par défaut;

  • Lors de la création d'une expression, la valeur par défaut du texte affiché (champ commentaire) n'est plus "Valeur" mais le nom de l'expression;

En vue d'une utilisation de CaRMetal totalement en français, on a ajouté cette page de syntaxe des CaRCommandes.

Par ailleurs, on a ajouté les deux nouvelles CaRCommandes IsIconSelected et SetIconSelection pour modifier provisoirement les préférences (et ainsi pouvoir séparer la création des objets et la détermination de leur aspect).

CaRMetal version 4.1

1) Apparition d'une "tortue LOGO" ( il s'agit plutôt d'une tortue Javascript) en 2D et en 3D.
Cette tortue est :

  • dynamique : les instructions peuvent prendre des expressions en paramètres et les constructions tortue sont alors dynamiques
  • "mutante" : la tortue a muté pour s'adapter à l'environnement de CaRMetal : elle crée des objets CaRMetal (points et segments) utilisables comme n'importe quel objet CaRMetal.

En fait, la tortue véhicule un mode alternatif de construction (en référentiel mobile).

La tortue se programme dans l'interface de script. Pour initialiser la tortue, il faut l'attacher à un point par l'instruction AttacherTortue().

Exemple : Soit deux points A et B. Le programme suivant :

AttacherTortue("A");
Viser("B");
pour i allant de 1 à 3 {
   Avancer("d(A,B)");
   TournerGauche(120);
   }

...crée un triangle équilatéral dynamique en A et B.


Et on peut ensuite utiliser ce triangle.

NB : les CaRCommandes Avancer et Reculer renvoient le nom du nouveau point créé et le nom du segment créé (dans un tableau de dimension 2). C'est fondamental, même si cela n'a pas été utilisé dans l'exemple ci-dessus.

Le programme fonctionnera également en 3D (pour obtenir le comportement attendu, remplacer d(A,B) par d3D(A,B)).

Dans le même script, la tortue peut ensuite être attachée à un autre point. La construction précédente n'en sera pas affectée.

Le langage utilisé est le Javascript (étendu et potentiellement francisé) de CaRMetal enrichi des CaRCommandes propres à la tortue.
Le détail de toutes les CaRCommandes tortue est consultable :

2) Le comportement du lecteur de scripts a été ajusté : SetIconSelection devient une CaRCommande beaucoup plus efficace.
Désormais, lors du lancement d'un script, les préférences sont d'abord enregistrées, puis restituées quand le script est terminé.
Cela permet d'utiliser simplement SetIconSelection pours séparer la partie construction (logique) de la partie aspect (apparence) dans les scripts.

3) La couleur de fond bleu n’est plus enregistrée quand on quitte une figure du disque de Poincaré.

4) Ajout des CaRCommandes Triangle et Quadrilatère, redondantes avec Polygone, mais plus simples à utiliser.

5) La CaRCommande SetRGBColor (ou MettreCouleurRVB) est désormais dynamique (= peut prendre des expressions en paramètres).

 

CaRMetal 3D version beta 4.0

Voir la page de téléchargement

palette 3D

Dans cette version, la 3D a été développée dans l'esprit de CaRMetal.
Il y a beaucoup de modifications.

Nouveautés :

 - modification de la 3D :

En fait, c'est toute l'approche de la 3D qui a été revue : les points 3D ne sont plus créés à partir d'expressions, mais en engagement direct, comme les points 2D, sans avoir recours à une boîte de dialogue.
Un point 3D est créé au clic dans le plan frontal passant par O. Ses coordonnées peuvent ensuite être modifiée comme en 2D.
Les points 3D sont créés libres par défaut et se déplacent dans leur plan frontal.
Il devient ainsi possible de faire de la géométrie 3D non analytique (= sans entrer aucune coordonnée).

Les objets 2D et les objets 3D cohabitent sur la même figure et communiquent.
Les outils 3D créent des points 3D à la volée.

On notera qu'un plan, dans les outils, est toujours désigné par trois de ses points. C'est un choix qui permet une sélection plus facile dans le cas de figures complexes où les plans ont tendance à se chevaucher.
L'outil point sur plan constitue la seule exception à cette règle (dans ce cas, le plan est désigné par lui-même, plus exactement un polygone).

- modification et élargissement de la palette 3D :

* outil point 3D : bi 3Dcoords

Ce bouton remplace le bouton précédent et permet de créer un point 3D. Il fonctionne comme le bouton point (2D).
x3D(), y3D(), z3D() jouent le même rôle que x() et y() dans les expressions.
d3D(,) joue le même rôle que d(,).
Pour un segment (respectivement un angle) 3D, le nom du segment (resp de l'angle) dans une expression donne la longueur 3D du segment (resp la mesure 3D de l'angle).
Idem pour les vecteurs 3D et leur norme (comme en 2D).

* outil intersection 3D de lignes :

Par ligne, on entend ici une droite ou un cercle (3D).
Ce bouton permet de créer leur intersection.

* outil point sur plan (mise à jour) :

Ce bouton permet de placer un point 3D sur un plan (défini par un polygone).

* outil arête 3D (mise à jour) : bi 3Darete

Ce bouton permet de créer une arête 3D en gérant les arêtes cachée (en pointillés).

* outil milieu 3D

* outil projection sur un plan : bi 3Dproj

Il s'agit d'une projection orthogonale. On commence par désigner le plan par 3 de ses points, puis on désigne le point à projeter.

* outil symétrie centrale 3D

* outil symétrie par rapport à un plan : bi 3Dsymp

* outil translation 3D

* outil vecteur 3D :

Mêmes conventions que pour les points.
Le nom du vecteur 3D dans une expresssion donne sa norme 3D.

* outils droite 3D, demi-droite 3D, segment 3D, polygone 3D.

* outil sphère de rayon donné : bi 3Dsphererayon

On désigne le centre de la sphère, qui est créée instantannément avec un rayon 1, que l'on peut ensuite ajuster dans la barre de propriétés (= inspecteur d'objet).
Ce comportement a été modifié logiquement par rapport au cercle 2D.

* outil sphère passant par un point : bi 3Dspherepoint

* outil cercle 3D d'axe donné passant par un point : bi 3Dcircle1

On désigne l'axe (droite 3D), puis le point.

* outil cercle 3D axe/direction, centre, rayon : bi 3Dcircle2

On désigne l'axe/direction (droite 3D), puis le centre, et enfin une expression donnant le rayon. Cette expression peut être un curseur.

* outil cercle 3D passant par 3 points : bi 3Dcircle3pts

* outil angle 3D

* Intersections de surfaces : bi 3Dplandroitebi 3Dplanplanbi 3Dspheredroitebi 3Dsphereplanbi 3Dspheresphere

plan/droite, plan/plan, sphère/droite, sphère/plan, sphère/sphère

* 5 solides de Platon : bi 3Dtetrabi 3Dcubebi 3Doctabi 3Disocbi 3Ddode

* 4 scripts de vue :  vues3D

vue d'avion, de face, de droite, retour en vue mobile (= même effet qu'annuler un des scripts précédents)

* macros de menu 3D

* CaRCommandes 3D : CaRCommandes 3D

Ces CaRCommandes traduisent les outils 3D pour les scripts.
L'assistant de scripts permet de les générer automatiquement.
La syntaxe de toutes les CaRCommandes peut être consultée sur cette page.

-----------------------------------------

L'assistant de script :

* Ajout de la boucle do {} until (); non standart en javascript.

* Le := traditionnel de l'affectation est reconnu dans un script (traduit par = en interne).

* Une boucle for simplifiée non standart est aussi reconnue, par exemple :
for i from 1 to 7 {}

* Le BEGINNER mode (mode débutant) de l'assistant de script : beginner mode

Comme son nom l'indique, il s'agit d'un mode débutant pour l'assistant de script.
Au départ, on est en mode normal. En cliquant sur le bouton (case à cocher), on passe en mode débutant.
En apparence, rien ne change. C'est seulement ce que va générer automatiquement l'assistant de script qui est modifié.

En mode normal, l'assistant génère des CarCommandes avec affectations en Javascript et une syntaxe Javascript standart (exception faite de la boucle do {} until ();)

En mode débutant :

a) si on est en français :
l'assistant génère des CaRCommandes en français;
l'assistant génère une syntaxe en français;
l'assistant génère des CaRCommandes sans affectation;
l'assistant génère une syntaxe simplifiée pour la boucle for.

b) si on n'est pas en français :
l'assistant génère des CaRCommandes en anglais;
l'assistant génère une syntaxe en anglais;
l'assistant génère des CaRCommandes sans affectation;
l'assistant génère une syntaxe simplifiée pour la boucle for.

-----------------------------------

Correction de bugs :

Un bug important du CaRScript ExecuteMacro (bug signalé par Serge Baudet, que je remercie ici) a été corrigé.
Dans une macro avec expression, ce bug imposait de commencer par l'expression. Sinon ExecuteMacro ne fonctionnait pas. Il était par exemple impossible d'utiliser la macro de menu Rotation avec ExecuteMacro, ce qui est maintenant possible.

Deux bugs signalés par Martin Acosta sur le forum (merci beaucoup, Martin !) ont été corrigés :

- impossibilité d'utiliser la carCommande getCONSOLE() qui permet de modifier les propriétés de la fenêtre de sortie.

- bug (historique...) de l'Historique, qui faisait qu'un point d'arrêt était créé par défaut de type « hidebreak » (= tout le début de la construction caché).

N'hésitez pas à signaler tout bug ou à nous faire part de vos commentaires sur le forum.