Accueil > > > TRACEUR DE FONCTION ÉVOLUÉ [EN TRAVAUX]
TRACEUR DE FONCTION ÉVOLUÉ [EN TRAVAUX]
Information sur la source
Description
Bonjour à tous, je vous présente ici un traceur de fonction évolué. Il gère, plus ou moins bien, un environnement de travail auquel on peut ajouter, supprimer et réutiliser des fonctions. Par exemple il est possible de definir une fonction avec un nombre n d'arguments et de l'utiliser dans une autre fonction. Mais pour en savoir plus sur ses possibilités, rdv un peu plus bas, dans la section "Explication finale", je vous ai concocté un petit exercice ;). D'autres part, j'ai aussi créé un nouveau (par rapport a mes precedents traceurs, et ceux que j'ai pu voir ici) "moteur" de dessin des courbes. Celui-ci ne nécessite plus de définir la précision du tracé, il s'adapte a la courbe, et donc offre un tracé (presque toujours) optimisé en fonction de la fenetre d'affichage. Malheureusement, ce "presque toujours" persiste et j'accepte volontier de l'aide pour y remedier ;). [NB: le moteur se trouve dans board.cls] Dans le but de vous orienter un peu, j'ai fait des annotations sur l'image capturée ;)
Conclusion
Comme vous le constaterez, le code manque un peu de commentaires, mais je fais toujours en sorte de choisir des noms pertinants. De plus chaque partie du programme est répartie dans des sous-projets indépendants (analyseur syntaxique et lexical, gestion des sauvegardes/chargements de l'environnement, etc... a ce sujet, je tiens a preciser que le projet "WinDoIt" present dans le groupe de projets n'est pas encore utilisé).
J'espère avoir beaucoup de feedback de votre part, et même de l'aide de la part des plus courageux ;).
Voici les bugs et manques du logiciel que j'ai pu constater (non exhaustif) :
- Bug (aléatoire ?) lors de l'utilisation de fonctions en parametre d'autres fonctions. Je ne sais pas vraiement d'ou ca vient, j'ai plusieurs fois tracé l'exécution sans vraiement mettre le doigt sur l'origine du problème. N'hésitez donc pas a me donner vos impressions et le plus de details possibles lorsque cela survient. - Pour les fonctions paramétriques, je n'ai pas encore implanté l'exécution en mode console de la fonction pour une valeur de t donnée. On ne peut que tracer une fonction paramétrique, pas la manipuler. Donc j'aimerai egalement pouvoir faire en sorte d'utiliser le résultat de fonctions paramétriques dans d'autres fonctions paramétriques. Exemple : on a la fonction parametrique u(t) = cos(t), sin(t) on souhaite utiliser le résultat de cette fonction paramétrique dans v(t) en ecrivant ainsi : v(t)=2*u(t),3*u(t). tel que cela revienne à éfinir v(t) ainsi : v(t) = 2*cos(t),3*sin(t). Pour cela aussi, si quelques âmes charitables se sentent de m'aider, c'est avec joie ! :D
Bon, pour le reste des bugs, je compte sur vous pour m'en faire remonter quelques uns si possible ;). ______________________________________________ _______________
Utilisation : Pour effectuer un calcul, déclarer une fonction ou une variable, il suffit de le taper dans la zone de texte en-dessous de la console. Par exemple pour effectuer un calcul on tape : 3*5 Le résultat sera affiché dans la console. Le principe reste le même pour tout type de calcul ou de déclaration. Une déclaration (de fonction ou de variable) se fait a l'aide de l'opérateur '='. par exemple : x=3*5 [declare la variable 'x' et lui affecte la valeur 15 calculée lors du lancement de l'instruction et pas a chaque fois qu'on rappelle x (pas si évident que ça).] x [renvoi la valeur contenue dans x, càd 15.] f(x)=3*x [définie la fonction f à 1 argument x, qui N'EST PAS le même que le x défini précédemment. Celui-ci est local a la fonction.] g(y)=x*y [défini g à 1 argument y, x quant à lui est le x défini 3 lignes au-dessus et dans l'état actuel de l'environnement, il vaut 15. A ce moment precis, g est equivalent à g(y)=15*y] h(x,y,z)=x*y*z [défini une fonction a 3 arguments.] h(2,3,4) [renvoi le résultat (2*3*4=)24.] p(t)=3*t;5*t [définie paramétriquement la fonction p qui vaut 3*t en x et 5*t en y] p(3) [~ Calculer les valeurs d'une fonction paramètrique pour une vameur du parametre n'est pas encore implémenté :s ~] Voilà pour la console.
Lorsque vous déclaré une variable ou une fonction dans la console, cette dernière apparait dasn la liste déroulante au-dessus de la fenêtre graphique. En sélectionner une dans cette liste provoquera son tracé, sauf si c'est une fonction a plus d'un argument, auquel cas rien ne sera tracé.
Le cadre situé sous la fenetre graphique sert à paramétrer la fenêtre graphique et le pas de la grille. Celui situé sous la console sert a paramétrer les valuers du paramètre d'une fonction paramétrique, c'est a dire sa valeur de départ, sa valeur d'arrivée, et son pas de progression. La case a coché permet de ne pas se soucier du pas de progression du paramètre et d'essayer de tracé au mieu la courbe (n'est pas toujours parfait).
Enfin, il est possible de zoomer sur une portion de la fenêtre graphique. Pour cela il suffit de faire un clic avec le bouton du milieu de la souris pour prendre le premier coin de la zone de zoom, et un second clic avec le meme bouton pour valider la zone.
Voila, je pense que j'ai dis le principal. N'hésitez pas a poser vos questions en cas de problème.
______________________________________ _______________________
EXERCICE : ________________________________________________ _____________ Enfin, pour vous faire voir ce qu'il sait faire, je vous ai concocté un petit environnement avec les courbes de bézier. Voici la marche a suivre pour afficher la courbe de bezier pour 4 points de controle : 1/ Tracé des points Lancé successivement les fonctions p1(t),p2(t),p3(t) et p4(t) qui vont successivement dessiner les 4 pts a l'ecran (points definis respectivement par (x1,y1), (x2,y2), (x3,y3) et (x4,y4)).
2/ Tracé du polygone de controle Une fois les pts tracés, je vous suggere de changer la couleur du tracé pour tracer les segments p1p2, p2p3 et p3p4 a l'aide des fonctions du meme nom.
3/ Tracé de la courbe de bézier pour le polygone de controle Enfin, dans une autre couleur, lancez la fonction CB_4pts qui va tracer la courbes de bezier pour ce polygone. Et voila ! :)
Si vous voulez vous amuser a voir ce que cela donne pour un plus grand nombre de points, il suffit pour cela de définir ces points, rajouter les fonctions correspondantes de tracé des points et tracé des segments, et enfin, je vous laisse deviner a uqoi ressemble la fonction CB_Npts ou N est le nombre de points que vous avez ajouté ! exemple de figure interessante (entrez les points suivants, pour les pts p1 a p4, il n'y a rien a rajouter, juste a changer x1..x4 et y1...y4) : p1:(0,0) p2:(3,8) p3:(11,7) p4:(11,-1) p5:(4,0) p6:(-1,9)
PS: vous devez donc : -modifier x1, x2, x3, x4 et y1, y2, y3, y4 -rajouter x5, x6, y5, y6, p5(u), p6(u), p4p5(u), p5p6(u) et CB_6tps(u) Amusez-vous bien ! ;)
Merci et a bientôt
PS: il faut lancer le groupe de projet nommé "grpTraceurV4.vbg" ans le sous-répertoire TraceurV4.
Historique
- 09 septembre 2006 16:55:39 :
- -
- 11 septembre 2006 18:25:49 :
- Ajouté : plein de blabla sur comment marche le programme.
Ajouté : quelques constantes supplémentaires et l'affichage de la liste de ces constantes et des fonctions prédéfinies au démarrage du programme.
Ajouté : un petit exemple avec les courbes de beziers.
Supprimé : l'exemple de fonction qui calcul la dérivée d'une autre fonction (rien ne vous empeche de la refaire).
- 11 septembre 2006 18:38:02 :
- Ajouté : blablabla (et oui, encore ;) )
- 11 septembre 2006 19:29:12 :
- Corrigé : un bug lors de la sauvegarde de l'environnement sur le disque.
- 14 septembre 2006 14:41:31 :
- Ajouté : gestion des erreurs de calculs dans la console (division par 0, fonction non definie pour une ou des valeurs donnees, variable non définie).
Ajouté : Un bouton pour tracer une fonction, plutot que de tracer lors de la selection de la fonction dans la liste déroulante.
Corrigé : quelques bugs dans le moteur de tracage de fonctions.
- 16 septembre 2006 17:31:01 :
- Corrigé : Bug au niveau du moins unaire. Ajouté : prise en compte du plus unaire. Modifié : Moteur d'affichage réécrit et completemet commenté. Ce dernier est plus efficaces, plus rapide (environ 10%) et certains bug ont étés corrigés (notamment avec les fonctions non définies sur IR).
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|