Une nouveauté de la version 6.2 mérite vraiment d'être soulignée
: il est désormais possible de créer des fonctions personnalisées
; c'est à dire des fonctions de une, deux, trois variables (ou même plus),
avec éventuellement des paramètres. Elles ne sont pas destinées à être représentées
graphiquement (comme les fonctions cartésiennes ou paramétriques
de C.a.R.), mais, ce qui est extrêmement commode, ce sont des quantités qui
peuvent être :
- enregistrées comme telles (un exemple : au collège comme au lycée, on peut
avoir besoin de la racine cubique, donc envie de créer une telle fonction,
plutôt que de demander aux élèves de taper x^(1/3) !), puis utilisées un peu
partout (coordonnées, expressions, fonctions ...).
- et même utilisées dans des macros.
C'est le second point qui sera ici développé. Pour une raison très précise : parce que René m'a prévenue personnellement ! En accompagnant la nouvelle d'un exemple très semblable à ceux de cet article (pour lequel les figures ont été reprises depuis), où il est question de fonctions de deux variables à "représenter" graphiquement. Mais la méthode de construction (la sienne donc) est bien meilleure que la mienne d'alors ; et puis surtout il suffit maintenant d'un simple clic pour modifier la définition de la fonction, donc le maillage de la surface. Merci René !
I - La méthode de construction.
La figure terminée.
Pour faire tourner : clic-droit dans une zone blanche.
Pour translater : mouvoir le point O.
Un clic-droit sur f permet, en modifiant la ligne function expression,
de changer de fonction ... et le maillage se met à jour.
Simple remarque : on peut changer la "longueur" des vecteurs unités
: par exemple en remplaçant l'ordonnée de Z, qui est y(O)+s2*cos(E3)
par y(O)+ (s2*cos(E3))*0.5.
La méthode de construction (celle de René).

Le repère (O,X,Y,Z) ? C'est une simple macro qui le donne (elle figure dans la bibliothèque de macros par défaut de CaRMetal).
Puis, quand le repère de base est affiché, on commence par un clic-droit sur chacun des quatre points pour les nommer réellement "O, X, Y, Z" (par défaut ce ne sont que des alias). Puis on construit tous les points disposés dans le carré ; c'est très rapide : un simple clic suffit pour chacun puisque dans ce cas les points créés sont automatiquement des points de la grille ou des milieux de points consécutifs de la grille.
Ensuite on définit la fonction personnalisée f. Pour celui qui se sert de CaRMetal, il suffit d'utiliser un bouton de la palette :
Pour C.a.R. c'est ctrl + fonction, ici x^2*y : en précisant que les variables sont x y (les séparer par un espace).
Aprés avoir créé un point m quelconque, on crée
le point M de coordonnées :
x(O)+x(m)*(x(X)-x(O))+y(m)*(x(Y)-x(O))+f(x(m),y(m))*(x(Z)-x(O))
y(O)+x(m)*(y(X)-y(O))+y(m)*(y(Y)-y(O))+f(x(m),y(m))*(y(Z)-y(O))
On termine en transformant le tout en macro, les initiaux
étant O, X, Y, Z, f et m ; et l'objet final : le point M.
Avant d'enregistrer la macro on prendra soin de mettre le signe "="
devant O, X, Y, Z et f : pour que ces éléments ne soient
plus demandés à chaque utilisation (avec CaRMetal on cocherait "fixe"
dans l'inspecteur de macros). Elle est ensuite appliquée à tous les points
du carré. Reste à tracer tous les petits segments.
II - Proposition d'utilisation dans nos classes.
Pourquoi utiliser C.a.R. ?
J'ai été, comme beaucoup, confrontée à ce problème : les
programmes de TS ou de 1ES (spé math) demandent de faire travailler sur les
surfaces, plus précisément sur l'intersection de surfaces (paraboloïdes, etc)
par certains plans. Un tableau et une craie ne suffisent pas !
On peut alors utiliser Excel, Maple ... (avec l'épineuse question des licences)
; ou des logiciels libres et gratuits (Euler, Gnuplot, XCas ...) ; en espérant
que les élèves comprendront facilement, et qu'ils seront subjugués! (mais
ne rêvons pas, ils sont actuellement relativement blasés à propos de la beauté
des fichiers tout faits ... qu'il faut juste contempler).
D'où l'idée d'une présentation (avec C.a.R.) où ils seraient un minimum actifs et inventeurs ; pour qu'ils s'approprient un peu mieux les notions. Il est bien sûr hors de question de leur faire fabriquer le maillage comme ci-dessus ; mais avec le maillage tout fait, on peut leur demander de construire des points variables de la surface, puis des sections par des plans, considérées alors comme lieux de points. Voici, à titre d'exemple un film qui explique la construction d'une section du paraboloïde d'équation z = x² + y² par un plan vertical.
Un travail-élève.
Il est largement inspiré d'un exercice donné au baccalauréat en TS (centres étrangers, juin 2003). Il s'agit toujours de la fonction f avec f(x,y) = x² y.
surface2 (pour CaRMetal) ou surface2 (pour C.a.R.)
Le mouvement suivant "théta" est ici restreint : on veillera à garder le nombre du haut compris entre 0 et 1 (j'ai remarqué qu'à force de tout faire tourner dans tous les sens, les élèves n'y voient plus rien).
Les questions qui pourraient être posées :
- Tracer la section de la surface par le plan vertical contenant le segment
vert.
- Tracer de même la section par un plan vertical parallèle à YOZ ; puis par
un plan vertical contenant la première bissectrice.
- Plus délicat, parce que cela nécessite des points conditionnels si on ne
veut pas sortir de la zone délimitée par le carré de couleur : quand x et
y sont positifs, section par un plan horizontal.
III. Quelques détails techniques pour les curieux.
Il arrive parfois qu'on ait des remords et envie de modifier
le début d'une construction déjà bien avancée ; ce qui en principe oblige
à tout recommencer ! Avec C.a.R. ce n'est pas toujours nécessaire puisque
sont permises les postréférences, c'est à dire la définition d'un
objet en fonction d'une quantité définie ... après ! Et la plupart du temps
sans utiliser les "@" comme dans les premières versions de C.a.R.
Un exemple ? La macro qui a permis la construction du repère utilise phi (E2
dans l'historique) et theta (E3 dans ce même historique). Or j'avais envie,
une fois la figure faite, que theta soit limité à l'intervalle [0;90°[ ; j'ai
donc défini une expression t' par :
if(E3>90,90,if(E3<0.01,0.01,E3))
puis, dans les coordonnées de X, Y et Z (qui sont fonctions de E3), remplacé E3 par t' !!!