Grapheur de courbes diverses

Soyez le premier à donner votre avis sur cette source.

Vue 10 612 fois - Téléchargée 1 319 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

Abdelelansari
Messages postés
21
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
29 mars 2008
-
Debutant et prof de math je m'intéresse aux courbes de fonctions si seulement tu m'explique pourquoi à la premiere tentative du code la fenetre apparait en disant depacement de capacité et au debogage on voit la ligne (XStp = (mXMax - mXMin) / mXRes) . Merci en tout cas
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
-
Ca donne plus de couleur au code c'est plus joli :)
Concrêtement je pense pas que ça change grand chose..
vautour32
Messages postés
38
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
9 décembre 2008
-
Source excellente. Vraiment!
Pourquoi est-ce que tu commences tes lignes d'assignation par "Let"?
michelprudhon
Messages postés
3
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
28 avril 2010
-
Impressionnant. Une vraie mine d'informations
Saros
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010
-
En effet j'ai eu beaucoup de mal avec la réactualisation des fenêtres...
Je vais essayer de régler ça

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.