Grapheur de courbes diverses

Soyez le premier à donner votre avis sur cette source.

Vue 11 423 fois - Téléchargée 1 385 fois

Description

C'est un grapheur, comme il en existe sûrement des dizaines dans ce site, et c'est aussi la première application de mon module de traitement d'équation.
Il convertit l'équation que vous donnez de la forme algébrique à la notation polonaise inversée (ou suffixée), puis effectue tous les calculs de valeurs avec cette forme. Les calculs ne sont sûrement pas plus rapides, mais ils sont plus souples (par exemple pour l'ajout de fonctions supplémentaires).
Pour tracer une courbe, il faut d'abord interpréter l'équation (déceler les éventuelles erreurs d'écriture), puis initialiser le graphique, et enfin calculer et tracer la courbe.
Une fois la courbe tracée, vous avez possibilité de la pointer (un petit cercle bleu apparaît, de même abscisse que la souris et sur la courbe, ses coordonnées sont affichée), ainsi que de déterminer graphiquement le nombre dérivé de la fonction tracée au point de même abscisse que la souris.

MAJ v2
Là c'est complètement différent d'avant, j'ai rajouté :
-les courbes paramétrées (x=f(t) et y=g(t))
-les courbes définies par des équas différentielles (dx=.. dy=.. dz=..)
-les courbes définies par une équation polaire (r=f(theta))
J'ai mis en exemple quelques fonctions types, comme la spirale de Cornu et l'attracteur de Lorentz pour les équas diff, les cardioïde, le noeud papillon pour les équa polaires.
Le grapheur ne bloque plus l'application lorsqu'il calcule (bon d'accord il suffisait d'un DoEvents mais bon)
/!\ important /!\
J'ai intégré l'utilisation de la variable t dans les équas diff. Ce qui m'a permis de tracer les spirales de Cornu. C'est joli :)
J'ai rajouté la possibilité de ralentir le traçage afin d'obtenir un meilleur effet.

Conclusion :


Pour l'équation que vous écrivez, fait attention avec le signe moins, car l'interpréteur voit "-x" comme une erreur de syntaxe : il ne traite le signe moins que lorsqu'il précède des chiffres, comme dans "-1". Pour écrire "-x", écrivez "(-1)*x". Je ne suis pas sûr que les parenthèses soient obligatoire, mais on n'est jamais trop prudent :)
Il y a traitement des éventuelles impossibilité de calcul (division par 0, indéfinition de la fonction, comme pour logarithme d'un négatif)
Le .EXE est disponible sur http://chez.com/topila/grapher.exe
Je vais ajouter plusieur utilitaires, comme la recherche d'un zéro, la détermination du nombre dérivé avec plus de précision, la recherche d'un extremum, de l'intégrale sur un intervalle, etc.
Laissez vos comments, des remarques, des suggestions, bref tout ce qui vous passe par le tête :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
27 mars 2005 à 00:01
Mise à jour v2, voir le commentaire
Pour l'exe :
http://www.chez.com/topila/grapher.exe
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
8 août 2005 à 08:57
Très bonne source, mais un petit problème:
quand on tape l'équation y=sqr(x) (par exemple) et que l'on resize la form de manière brutale (en double-cliquant sur la barre de titre pour agrandir), il y a un bug sur l'affichage de la courbe!
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
25 oct. 2005 à 17:07
En effet j'ai eu beaucoup de mal avec la réactualisation des fenêtres...
Je vais essayer de régler ça
michelprudhon Messages postés 3 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 avril 2010
15 juil. 2006 à 18:12
Impressionnant. Une vraie mine d'informations
vautour32 Messages postés 38 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 décembre 2008
23 nov. 2007 à 19:12
Source excellente. Vraiment!
Pourquoi est-ce que tu commences tes lignes d'assignation par "Let"?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.