Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Traceur de courbes représentatives des fonctions y = f(x) | |
|
+4jean_debord Jicehel Yannick papydall 8 participants | |
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Traceur de courbes représentatives des fonctions y = f(x) Ven 20 Jan 2017 - 17:56 | |
| Traceur de courbes représentatives des fonctions y = f(x) Le programme utilise EVAL.DLL, développée par Jean_Debord pour évaluer une expression mathématique. Vous pouvez télécharger cette DLL à partir de la page de Jean_debord : http://www.unilim.fr/pages_perso/jean.debord/panoramic/panoramic.htmVous pouvez la télécharger également à partir de mon webdav (voir ma signature) Tel quel, le programme peut tracer jusqu'à 4 courbes sur le même graphique. - Code:
-
rem ============================================================================ rem Traceur de courbes réprésentatives des fonctions rem Par papydall rem ============================================================================ rem Utilise "EVAL.DLL", bibliothèque développée par Jean Debord pour évaluer une rem expression mathématique. rem Vous pouvez télécharger EVAL.DLL à partir du site de son auteur : rem ______________________________________________________________________ rem | | rem | http://www.unilim.fr/pages_perso/jean.debord/panoramic/panoramic.htm | rem |______________________________________________________________________|
rem ============================================================================ ' Opérateurs reconnus par la DLL : rem + addition rem - soustraction rem * multiplication rem / division rem \ division entière rem % modulo rem ^ exponentiation rem > décalage à droite rem < décalage à gauche rem & AND logique rem | OR logique rem $ XOR logique rem ! NOT logique rem @ IMP logique rem = EQV logique rem ============================================================================ ' Ordre de priorité : rem ! , & , | , $ , = , @ , ^ , +- (plus et moins unaires) , */ , \ , % , < > , +- (addition et soustraction) rem L utilisation des parenthèses modifie l ordre de priorité : les parenthèses sont prioritaires. rem ============================================================================ ' Variables rem la DLL peut utiliser jusqu à 26 variables de A à Z. rem ============================================================================ ' Fonctions disponibles dans la DLL rem abs : valeur absolue rem sgn : signe rem int : partie entière rem sqrt : racine carrée rem exp : exponentielle rem ln : logarithme naturel (néperien) rem log10 : logarithme décimal rem fact : factorielle rem rnd : nombre aléatoire appartenant à [0,1) rem deg : degré ---> radian rem rad : radian ---> degré rem sin : sinus rem cos : cosinus rem tan : tangente rem asin : arc sinus rem acos : arc cosinus rem atan : arc tangente rem atan2 : atan2(y,x) = atan(y/x) dans les 4 quadrants rem sinh : sinus hyperbolique rem cosh : cosinus hyperboloique rem tanh : tangente hyperboloique rem asinh : sinus hyperbolique inverse rem acosh : cosinus hyperbolique inverse rem atanh : tangente hyperbolique inverse rem gamma : fonction gamma (factorielle généralisée) rem erf : error function (distrinution normale) rem ============================================================================ ' Fonctions exportées par la DLL rem EVAL.DLL exporte 3 fonctions : rem 1) InitFunc : initialise les fonctions intégrées dans la DLL et rétourne leur nombre rem Appellez cette fonction avant d utiliser toute fonction intégrée. rem 2) SetVariable : Cette fonction affecte une valeur à une variable et rend le rem numéro d ordre de la variable (1 pour A, 2 pour B etc) rem 3) Eval : Cette fonction évalue une expression passée comme chaîne de caractères rem et retourne l un des codes d erreur suivant: rem 0 : aucune erreur rem 1 : signe inattendu rem 2 : parenthèses non équilibrées rem 3 : variable non définie rem 4 : fonction non définie rem ============================================================================ ' Exemple d'utilisation de la DLL rem dim x,i%,var$,exp$,result rem dll_on "eval.dll" rem i% = dll_call0("InitFunc") : ' initialiser les fonctions de la DLL rem var$ = "x" : ' définir X comme variable rem x = 123 : ' affecter une valeur à la variable X rem i% = dll_call2("SetVariable",adr(var$),adr(x)) : ' affecter la valeur à la variable rem exp$ = "cos(x)^2 + sin(x)^2" : ' définir une expression mathématique sous forme de chaine de caractères rem i% = dll_call2("Eval", adr(exp$), adr(result)) : ' Evaluer l'expression et affecter le résultat à la variable result rem i% contient le code erreur (0 si aucune erreur) rem ============================================================================ rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& rem ============================================================================
Init() GUI()
end rem ============================================================================ SUB Init()
label Clic dim x,y,y$,g$,h$,i$,ret%,var$,exp$,err dim xe,ye,xmin,xmax,ymin,ymax,largeur,hauteur var$ = "x" dll_on "eval.dll" : ' Indiquez le chemin d'accès à EVAL.DLL ret% = dll_call0("InitFunc") width 0,1200: height 0,700 top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 caption 0,"Traceur de courbes répresentatives des fonctions" application_title "Traceur de courbes répresentatives des fonctions" END_SUB rem ============================================================================ SUB GUI()
Container_Fonctions() Container_Axes() Container_Intervalle() Container_Dim_Grafic() button 90 : top 90, 600 : left 90, 50 : font_bold 90 : font_size 90,16 width 90,100 : caption 90,"Exécuter" : on_click 90,Clic button 91 : top 91, 600 : left 91, 200 : font_bold 91 : font_size 91,16 width 91,100 : caption 91,"Quitter" : on_click 91,Clic button 92 : top 92,600 : left 92,350 : font_bold 92 : font_size 92,16 width 92,100 : caption 92,"Aide" : on_click 92,Clic picture 100 : top 100,20 : left 100,560 : 2d_target_is 100 : print_target_is 100 : hide 100 END_SUB rem ============================================================================ Clic:
select number_click case 90 : Executer() case 91 : Quitter() case 92 : Aide() end_select
return rem ============================================================================ SUB Container_Fonctions()
container 10 : top 10,50 : left 10,20 : width 10,500 : height 10,200 color 10, 150,150,150 : font_color 10,255,255,255 : font_bold 10 font_size 10,16 : caption 10,"Fonctions" check 11 : parent 11,10 : top 11,40 : left 11,10 : font_color 11,0,0,255 color 11, 150,150,150 : caption 11," f(x) = " : mark_on 11 edit 12 : parent 12,10 : top 12,30 : left 12,20 + width(11) : width 12,370 font_color 12,0,0,0 : text 12,"cos(x) + sin(sqrt(abs(x)))" check 13 : parent 13,10 : top 13,80 : left 13,10 : font_color 13,255,0,0 color 13,150,150,150 : caption 13," g(x) = " : mark_on 13 edit 14 : parent 14,10 : top 14,70 : left 14,20 + width(13) : width 14,370 font_color 14,0,0,0 : text 14,"sin(x)/x" check 15 : parent 15,10 : top 15,120 : left 15,10 : font_color 15,0,255,0 color 15,150,150,150 : caption 15," h(x) = " : mark_on 15 edit 16 : parent 16,10 : top 16,110 : left 16,20 + width(15) : width 16,370 font_color 16,0,0,0 : text 16,"1/x" check 17 : parent 17,10 : top 17,160 : left 17,10 : font_color 17,255,255,0 color 17,150,150,150 : caption 17," i(x) = " : mark_on 17 edit 18 : parent 18,10 : top 18,150 : left 18,20 + width(17) : width 18,370 font_color 18,0,0,0 : text 18,"1 - 2*sin(x)/sinh(x)" END_SUB rem ============================================================================ SUB Container_Axes()
container 20 : top 20,70 + height(10) : left 20,20 : width 20,200 : height 20,100 color 20, 150,150,150: font_color 20,255,255,255 : font_bold 20 font_size 20,16 : caption 20,"Axes" check 21 : parent 21,20 : top 21,40 : left 21,10 : font_color 21,0,0,0 : mark_on 21 color 21, 150,150,150 : caption 21," Abscisse (X) " : width 21,150 check 22 : parent 22,20 : top 22,60 : left 22,10 : font_color 22,0,0,0 : mark_on 22 color 22, 150,150,150 : caption 22," Ordonnée (Y) " : width 22,170 END_SUB rem ============================================================================ SUB Container_Intervalle()
container 40 : top 40,90 + height(10) + height(20) : left 40,20 : width 40,500 : height 40,150 color 40, 150,150,150 : font_color 40,255,255,255 : font_bold 40 font_size 40,16 : caption 40,"A tracer sur l'intervalle" alpha 41 : parent 41,40 : top 41,40 : left 41,25 : font_bold 41 : font_color 41,0,0,0 caption 41, "X minimum : " edit 42 : parent 42,40 : top 42,30 : left 42,25 + width(41) : font_bold 42 width 42,60 : font_color 42,0,0,0 : text 42,"-10" alpha 43 : parent 43,40 : top 43,70 : left 43,25 : font_bold 43 : font_color 43,0,0,0 caption 43,"Y minimum : " edit 44 : parent 44,40 : top 44,70 : left 44,25 + width(43) : font_bold 44 width 44,60 : font_color 44,0,0,0 : text 44,"-2" alpha 45 : parent 45,40 : top 45,40 : left 45,250 : font_bold 45 : font_color 45,0,0,0 caption 45, "X maximum : " edit 46 : parent 46,40 : top 46,35 : left 46,250 + width(45) : font_bold 46 width 46,60 : font_color 46,0,0,0 : text 46,"10" alpha 47 : parent 47,40 : top 47,70 : left 47,250 : font_bold 47 : font_color 47,0,0,0 caption 47, "Y maximum : " edit 48 : parent 48,40 : top 48,70 : left 48,250 + width(47) : font_bold 48 width 48,60 : font_color 48,0,0,0 : text 48,"2"
END_SUB rem ============================================================================ SUB Container_Dim_Grafic()
container 50 : top 50,70 + height(10) : left 50,45 + width(20) : width 50,275 : height 50,200-50-50 color 50, 150,150,150 : font_color 50,255,255,255 : font_bold 50 font_size 50,16 : caption 50,"Dimensions du graphique" alpha 51 : parent 51,50 : top 51,30 : left 51,5 : font_bold 51 : font_color 51,0,0,0 caption 51, "Largeur (en pixels) : " edit 52 : parent 52,50 : top 52,25 : left 52,5+width(51) : font_bold 52 width 52,50 : font_color 52,0,0,0 : text 52,"600" alpha 53 : parent 53,50 : top 53,70: left 53,5 : font_bold 53 : font_color 53,0,0,0 caption 53, "Hauteur (en pixels) : " edit 54 : parent 54,50 : top 54,65 : left 54,5+width(53) : font_bold 54 width 54,50 : font_color 54,0,0,0 : text 54,"600"
END_SUB rem ============================================================================ SUB Executer()
Verification() if checked(21) = 1 then Axe_X() if checked(22) = 1 then Axe_Y() if checked(11) = 1 then y$ = text$(12) : 2d_pen_color 0,0,255 : Tracer(y$) if checked(13) = 1 then g$ = text$(14) : 2d_pen_color 255,0,0 : Tracer(g$) if checked(15) = 1 then h$ = text$(16) : 2d_pen_color 0,255,0 : Tracer(h$) if checked(17) = 1 then i$ = text$(18) : 2d_pen_color 255,255,0 : Tracer(i$)
END_SUB rem ============================================================================ SUB Verification()
if (numeric(text$(42)) = 0) or (numeric(text$(44)) = 0) message "!!! ERREUR !!!" + chr$(13) + "Vérifiez X-minimum et/ou Y-minimum" exit_sub end_if if val(text$(42)) >= val(text$(46)) message "!!! ERREUR !!!" + chr$(13) + "X-minimum doit être inférieure à X-maximum" exit_sub end_if
if (numeric(text$(46)) = 0) or (numeric(text$(48)) = 0) message "!!! ERREUR !!!" + chr$(13) + "Vérifiez X-maximum et/ou Y-maximum" exit_sub end_if if val(text$(44)) >= val(text$(48)) message "!!! ERREUR !!!" + chr$(13) + "Y-minimum doit être inférieure à Y-maximum" exit_sub end_if
if (numeric(text$(52)) = 0) or (numeric(text$(54)) = 0) message "ERREUR !!!" + chr$(13) + "Vérifiez la largeur et/ou la hauteur" exit_sub end_if width 100,val(text$(52))+5 : height 100,val(text$(54))+5 : show 100 ' xc = width(100)/2 : yc = height(100)/2 xmin = val(text$(42)) : xmax = val(text$(46)) ymin = val(text$(44)) : ymax = val(text$(48)) largeur = val(text$(52)) : hauteur = val(text$(54)) color 100,100,50,20
END_SUB rem ============================================================================ SUB Quitter()
if message_warning_yes_no("Vous voulez vraiment quitter ?") = 1 then terminate END_SUB rem ============================================================================ SUB Axe_X()
dim_local p1,y0,i,pas pas = largeur / (xmax-xmin) y0 = hauteur / (ymax-ymin) : p1 = hauteur + y0 * ymin 2d_pen_color 200,200,200 : font_color 100,255,255,255 : 2d_fill_color 100,50,20 2d_line 0,p1,largeur,p1 for i = 0 to largeur step pas 2d_line i,p1-5,i,p1+5 if (xmin+i/pas) <> 0 then print_locate i,p1+10 : print int(0.5+xmin+i/pas) next i
END_SUB rem ============================================================================ SUB Axe_Y()
dim_local q1,x0 ,i,pas pas = hauteur / (ymax-ymin) x0 = largeur / (xmax-xmin) : q1 = 0-x0*xmin 2d_pen_color 200,200,200 : : font_color 100,255,255,255 : 2d_fill_color 100,50,20 2d_line q1,0,q1,hauteur for i = 0 to hauteur step pas 2d_line q1-5,i,q1+5,i if (ymax-i/pas) <> 0 then print_locate q1-15,i-5 : print int(0.5+ymax - i/pas) next i
END_SUB rem ============================================================================ ' Passage de coordonnées utilisateur aux coordonnées écran SUB CU2CE(xr,yr)
dim_local a1,b1,a2,b2 a1 = largeur/(xmax-xmin) : b1 = (0-largeur*xmin)/(xmax-xmin) a2 = 0 - hauteur/(ymax-ymin) : b2 = (0-hauteur*ymin)/(ymax-ymin) xe = a1 * xr + b1 : ye = a2 * yr + b2
END_SUB rem ============================================================================ SUB Fonction(y$,x) dim_local erreur$ ret% = dll_call2("SetVariable",adr(var$),adr(x)) ret% = dll_call2("Eval", adr(y$), adr(y)) select ret% case 0 : ' Aucune erreur case 1 : erreur$ = "Signe inattendu" case 2 : erreur$ = "Parenthèses non équilibrées" case 3 : erreur$ = "Division par zéro" case 4 : erreur$ = "Variable non définie" case 5 : erreur$ = "Fonction non définie" end_select if ret% <> 0 message "!!! ERREUR !!!" + chr$(13) + erreur$ + chr$(13) + "dans la fonction" + chr$(13) + y$ err = 1 end_if END_SUB rem ============================================================================ SUB Tracer(y$) err = 0 Fonction(y$,xmin) if err > 0 then end CU2CE(xmin,y) : 2d_poly_from xe,ye for x = xmin to xmax step pi/180 Fonction(y$,x) : y = y-(ymin+ymax) CU2CE(x,y) : 2d_poly_to xe,ye : display next x END_SUB rem ============================================================================ SUB Aide() dim_local t$,l$ l$ = chr$(13) t$ = " Le programme utilise EVAL.DLL, bibliothèque développée par Jean Debord" + l$ t$ = t$ + "pour évaluer une expression mathématique." + l$ t$ = t$ + "Le programme permet de tracer sur le même graphique jusqu'à 4 courbes" + l$ t$ = t$ + "de couleurs différentes." + l$ t$ = t$ + "Vous pouvez saisir le texte de vos fonctions dans Fonctions" + l$ t$ = t$ + "Pour que le programme trace la (ou les) courbe(s) vous devez cocher" + l$ t$ = t$ + "les CHECKs correspondants." + l$ t$ = t$ + "Si vous désirez tracer les axes, cocher leur CHECK." + l$ t$ = t$ + "Vous pouvez modifier les dimensions du graphique ainsi que" + l$ t$ = t$ + "l'intervalle du tracé dans les EDITs" + l$ + l$ t$ = t$ + "Les Fonctions disponibles dans la DLL et que vous pouvez utiliser dans ce programme" +l$ t$ = t$ + " abs : valeur absolue " + l$ t$ = t$ + " sgn : signe " + l$ t$ = t$ + " int : partie entière" + l$ t$ = t$ + " sqrt : racine carrée" + l$ t$ = t$ + " exp : exponentielle " + l$ t$ = t$ + " ln : logarithme naturel (néperien)" + l$ t$ = t$ + " log10 : logarithme décimal" + l$ t$ = t$ + " fact : factorielle " + l$ t$ = t$ + " rnd : nombre aléatoire appartenant à [0,1)" + l$ t$ = t$ + " deg : degré ---> radian " + l$ t$ = t$ + " rad : radian ---> degré " + l$ t$ = t$ + " sin : sinus" + l$ t$ = t$ + " cos : cosinus" + l$ t$ = t$ + " tan : tangente" + l$ t$ = t$ + " asin : arc sinus " + l$ t$ = t$ + " acos : arc cosinus" + l$ t$ = t$ + " atan : arc tangente" + l$ t$ = t$ + " atan2 : atan2(y,x) = atan(y/x) dans les 4 quadrants" + l$ t$ = t$ + " sinh : sinus hyperbolique" + l$ t$ = t$ + " cosh : cosinus hyperboloique " + l$ t$ = t$ + " tanh : tangente hyperboloique" + l$ t$ = t$ + " asinh : sinus hyperbolique inverse" + l$ t$ = t$ + " acosh : cosinus hyperbolique inverse" + l$ t$ = t$ + " atanh : tangente hyperbolique inverse " + l$ t$ = t$ + " gamma : fonction gamma (factorielle généralisée)" + l$ t$ = t$ + " erf : error function (distrinution normale)" + l$ message t$ END_SUB rem ============================================================================
- Voici le résultat:
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 20 Jan 2017 - 21:03 | |
| | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| | | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Dim 22 Jan 2017 - 10:48 | |
| J'adore ton programme. Il fonctionne super bien et merci encore à Jean Debord pour sa DLL qui contribue à ce super programme qui servira sans doute bientôt pour vérifier le tracé des courbes de mon fiston ... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 1:28 | |
| Merci Jicehel pour ces mots gentils. Puisse ton fils trouver du plaisir à se servir de mon programme.
A propos : Avant de faire mon programme, j’ai commencé à coder un interpréteur des expressions mathématiques (un parser). C’était un très bon exercice de programmation, pas simple du tout, et puis je me suis rappelé de EVAL.DLL de jean Debord que je salue. Cette dll m’a épargné beaucoup d’efforts. Merci Jean_debord. | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 9:13 | |
| Merci papydall Moi aussi je me suis basé sur un code antérieur, comme le montrent les commentaires de la DLL : - Code:
-
' Title : Simple Expression Evaluator ' Version : 1.1 ' Author : Aleksandar Ruzicic (admin@krcko.net) ' Adapted by Jean Debord (debord.jean@orange.fr) ' File : fbeval.bas ' ' BIG thanks goes to Jack W. Crenshaw for his ' "LET'S BUILD A COMPILER!" text series. ' ' You're free to use this in any way you find it ' useful, just "give credit where credit is due"
Rendons donc à César ... L'avantage que j'ai trouvé à ce "parser", par rapport à d'autres, c'est qu'on peut lui ajouter très facilement des fonctions. C'est ce que j'ai fait avec erf et gamma par exemple. Donc si vous avez besoin d'autres fonctions du même type, n'hésitez pas à les demander. | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Nombres premiers Lun 23 Jan 2017 - 9:19 | |
| Dis Papydall
S'il te plaît. Dessine-moi des petites étoiles positionnées avec les coordonnées des premiers nombres premiers.
Le petit Ouf_ca_passe
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 15:35 | |
| - Ouf_ca_passe a écrit:
- S'il te plaît.
Dessine-moi des petites étoiles positionnées avec les coordonnées des premiers nombres premiers. Désolé Ouf, mais je n’ai pas compris ta demande. Une position dans le plan nécessite deux coordonnées (abscisse et ordonnée en coordonnées cartésiennes ou module et argument en coordonnées polaires), je ne vois pas ce que veut dire « coordonnées des premiers nombres premiers » Tu veux bien jeter un œil sur la spirale de Ulam ou bien sur la Super ellipseSinon, explique ce que tu veux obtenir, et on verra si quelqu’un d’autre pourrait apporter une solution. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 15:49 | |
| S'il te plait, dessine-moi un mouton... | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Nombres premiers Lun 23 Jan 2017 - 15:54 | |
| Cher Papydall
x=0 -> y=0 ! Ce n'est donc pas une "fonction" graphique x=1 -> y=1 ! J'appellerai plutôt ça un "nuage de points" x=2 -> y=2 ! et j'ai compliqué le défi en te demandant x=3 -> y=3 ! des étoiles à la place des points. x=4 -> y=5 ! Je me doute bien que ton système d'axes sera orthogonal x=5 -> y=7 ! mais n'aura pas la même " norme" (échelle) en abscisse et x=6 -> y=11 ! en ordonnée. x=7 -> y=13 x=8 -> y=17 x=9 -> y=19 x=10 -> y=23 x=11 -> y=29 etc.
Cordialement | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 17:35 | |
| Pour Ouf_ça_passe (ou ça casse) - Code:
-
dim x,y,i data 2,3,5,7,11,13,17,19,23,29 picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10 2d_line 0,height(10)-50,width(10),height(10)-50 : font_bold 10 : font_size 10,10 2d_line 50,0,50,height(10) for i = 1 to 10 read y : print_locate i*30+50,height(10)-50-y*12 : print "*" + str$(y) next i
Pour JL35 : A défaut du mouton, voici une rose … des vents ! - Code:
-
rem ============================================================================ rem Rose des vents rem ============================================================================ Init() Ouest() Nord() Est() Sud() Nord_Ouest() Nord_Est() Sud_Est() Sud_Ouest() Directions() end rem ============================================================================ SUB Init() dim e : e = 2 width 0,400*e : height 0,400*e picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10 font_name 10,"arial" : font_bold 10 : font_size 10,12 : color 10,240,200,150
END_SUB rem ============================================================================ SUB Ouest() 2d_pen_color 0,0,255 : 2d_poly_from 100*e,190*e 2d_poly_to 163*e,217*e : 2d_poly_to 190*e,190*e : 2d_poly_to 100*e,190*e 2d_flood 163*e,215*e,0,0,255 2d_pen_color 255,0,0 : 2d_poly_from 100*e,190*e 2d_poly_to 163*e,163*e : 2d_poly_to 190*e,190*e : 2d_poly_to 100*e,190*e 2d_flood 160*e,165*e,255,0,0 END_SUB rem ============================================================================ SUB Nord() 2d_pen_color 0,0,255 : 2d_poly_from 190*e,100*e 2d_poly_to 163*e,163*e : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,100*e 2d_flood 165*e,163*e,0,0,255 2d_pen_color 255,0,0 : 2d_poly_from 190*e,100*e 2d_poly_to 217*e,163*e : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,100*e 2d_flood 215*e,163*e,255,0,0 END_SUB rem ============================================================================ SUB Est() 2d_pen_color 0,0,255 : 2d_poly_from 280*e,190*e 2d_poly_to 217*e,163*e : 2d_poly_to 190*e,190*e : 2d_poly_to 280*e,190*e 2d_flood 217*e,165*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 280*e,190*e 2d_poly_to 217*e,217*e : 2d_poly_to 190*e,190*e : 2d_poly_to 280*e,190*e 2d_flood 217*e,215*e,255,0,0
END_SUB rem ============================================================================ SUB SUD() 2d_pen_color 0,0,255 : 2d_poly_from 190*e,280*e 2d_poly_to 217*e,217*e : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,280*e 2d_flood 215*e,217*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 190*e,280*e 2d_poly_to 163*e,217*e : 2d_poly_to 190*e,190*e : 2d_poly_to 190*e,280*e 2d_flood 165*e,217*e,255,0,0
END_SUB rem ============================================================================ SUB Nord_Ouest() 2d_pen_color 0,0,255 : 2d_poly_from 127*e,127*e 2d_poly_to 145*e,170*e : 2d_poly_to 163*e,163*e : 2d_poly_to 127*e,127*e 2d_flood 145*e,165*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 127*e,127*e 2d_poly_to 163*e,163*e : 2d_poly_to 170*e,145*e : 2d_poly_to 127*e,127*e 2d_flood 163*e,160*e,255,0,0
END_SUB rem ============================================================================ SUB Nord_Est() 2d_pen_color 0,0,255 : 2d_poly_from 251*e,127*e 2d_poly_to 210*e,145*e : 2d_poly_to 217*e,163*e : 2d_poly_to 251*e,127*e 2d_flood 215*e,145*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 251*e,127*e 2d_poly_to 234*e,170*e : 2d_poly_to 217*e,163*e : 2d_poly_to 251*e,127*e 2d_flood 234*e,165*e,255,0,0
END_SUB rem ============================================================================ SUB Sud_Est() 2d_pen_color 0,0,255 : 2d_poly_from 251*e,251*e 2d_poly_to 234*e,210*e : 2d_poly_to 217*e,217*e : 2d_poly_to 251*e,251*e 2d_flood 220*e,217*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 251*e,251*e 2d_poly_to 210*e,235*e : 2d_poly_to 217*e,217*e : 2d_poly_to 251*e,251*e 2d_flood 215*e,235*e,255,0,0
END_SUB rem ============================================================================ SUB Sud_Ouest() 2d_pen_color 0,0,255 : 2d_poly_from 127*e,251*e 2d_poly_to 170*e,235*e : 2d_poly_to 163*e,217*e : 2d_poly_to 127*e,251*e 2d_flood 163*e,220*e,0,0,255
2d_pen_color 255,0,0 : 2d_poly_from 127*e,251*e 2d_poly_to 145*e,210*e : 2d_poly_to 163*e,217*e : 2d_poly_to 127*e,251*e 2d_flood 160*e,217*e,255,0,0
END_SUB rem ============================================================================ SUB Directions() 2d_fill_color 240,200,150 print_locate 188*e, 85*e :print "N" print_locate 188*e, 282*e : print "S" print_locate 80*e, 185*e : print "O" print_locate 290*e, 185*e : print "E" print_locate 120*e, 110*e : print "NO" print_locate 260*e, 110*e: print "NE" print_locate 120*e, 255*e : print "SO" print_locate 260*e, 255*e : print "SE" END_SUB rem ============================================================================
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 17:45 | |
| Merci papydall ! je n'aurais jamais pensé qu'on m'offrirait encore des roses, à mon âge ! (d'ailleurs c'est une première, on ne m'en avait encore jamais offert). Et celle-ci est superbe ! Juste un petit défaut, chez moi elle n'est pas orientée automatiquement vers le nord, mais vers le plafond... ou alors l'étoile polaire ? Mais bon, je ne vais pas pinailler, tout de même ! | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: OUI, c'est ça Lun 23 Jan 2017 - 17:54 | |
| mais je m'attendais à plus de dispersion des points que ça. Sur les 10 premiers nombres premiers , on dirait une courbe parfaite ?!? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 17:56 | |
| - JL35 a écrit:
- Merci papydall ! je n'aurais jamais pensé qu'on m'offrirait encore des roses, à mon âge ! (d'ailleurs c'est une première, on ne m'en avait encore jamais offert).
Pour toute chose, il y a un début. - JL35 a écrit:
- Juste un petit défaut, chez moi elle n'est pas orientée automatiquement vers le nord, mais vers le plafond... ou alors l'étoile polaire ?
Elle pointe vers le Nord Martien. Demande à notre ami JJN4, ou attendons l’avis de Ouf_ça_p(c)asse ! | |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: Rose Lun 23 Jan 2017 - 18:05 | |
| | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 18:38 | |
| Les plus court sont les meilleurs ! - Code:
-
dim i width 0,600 : height 0,600 for i = 1 to 600 step 3 2d_pen_color mod(i,255), abs(mod(600-i,255)),i/3 2d_line 0,0,600,i : 2d_line 0,0,i,600 next i
| |
| | | Ouf_ca_passe
Nombre de messages : 285 Age : 76 Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France Date d'inscription : 21/12/2015
| Sujet: IMPRESSIONNANT ! Lun 23 Jan 2017 - 18:51 | |
| Avec si peu de code
Bonne soirée | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 22:39 | |
| On peut faire plus court, mais en noir et blanc. - Code:
-
dim t for t = 1 to width(0) step 3 : 2d_line 0,0,width(0),t : 2d_line 0,0,t,width(0) : next t
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Lun 23 Jan 2017 - 23:37 | |
| Bravo Papydall. Tiens, du coup je fais ma variante mais en un peu plus de lignes - Code:
-
dim t, a : a = width(0) for t = 1 to a step 2 + 5*t : 2d_pen_color abs(a/2 - t)/ 2, t/3, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a wait 1000 : for t = 1 to a step 0.5 : 2d_pen_color abs(a/2 - t)/ 2, t/3, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a wait 1000 : for t = 1 to a step 4 + 3*t : 2d_pen_color t/3, abs(a/2 - t)/ 2, 150 : 2d_line 0,0,a,t : 2d_line 0,0,t,a : next t: 2d_line 0,0,a,a | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 0:41 | |
| Very good ! C’est formidable qu’avec un petit code et beaucoup d'imagination, on fait des jolies choses, beaucoup mieux que le mouton demandé par JL35 Vive Panoramic ! Vive les Panoramiciens ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 7:45 | |
| C'est un beau résultat pour un petit code (petit par son nombre de lignes, mais grand par le résultat... ). Celui de Jicehel est facile à transformer en animation, avec un boucle for/next ou while/end_while. A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 11:31 | |
| Sers-toi, Jean Claude. On attend ton animation avec un e boucle même du genre repeat / until Es-tu capable de dessiner un mouton pour notre ami JL35 ? Bon, il acceptera, sans doute, une brebis, mais pas trop vielle, STP ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 13:38 | |
| En bikini ?
Et non, pas une vieille bique ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 16:16 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) Mar 24 Jan 2017 - 17:05 | |
| C'est l'idée, mais un peu schématisé !
(papydall, excuse-moi pour le hors piste...) | |
| | | Contenu sponsorisé
| Sujet: Re: Traceur de courbes représentatives des fonctions y = f(x) | |
| |
| | | | Traceur de courbes représentatives des fonctions y = f(x) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |