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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|