Dessiner rapidement une fonction f(x)
Posté le 22/12/2015 12:28
Bonjour à tous !
Il n'y a pas longtemps, nous avons vu en cours ce magnifique outil qu'est le graphe de fonction.
En voyant une parabole à l'envers et comment on peut la déplacer, j'ai eu l'idée d'un jeu.
J'ai fébrilement pris ma calculatrice, je l'ai non moins fébrilement allumé et j'ai été, en me demandant ce que je faisais, dans le menu programme. Après tout ce temps sans y avoir touché, j'ai appuyé sur F3 et nommé mon programme "WQJNRPLF". Nom fort évocateur de ce que j'allais écrire.
Après plusieurs heures de cours et pages de calculs sur mes feuilles d'exercices. J'en suis arrivé à un petit truc sympa. MAIS j'utilise Graph Y= pour dessiner ma fonction carré ce qui est horriblement lent.
Je fais donc appel à vous cher communauté que j'ai honteusement quitté au gré d'une certaine personne.
Comment puis-je dessiner rapidement une fonction carré ?
Merci aux personnes non rancunières de mon départ imprévue qui auront l'incroyable gentillesse de m'aider
Merci à tous de votre aide ! Voici comment je procède grâce au superdrawstat :
ViewWindow -64,64,0,1,64,0,1,50,1 //On paramètre la fenêtre pour avoir l'axe des ordonnés au milieu que des Y positifs. Ainsi que (les 3 derniers) dans l'ordre : la 1ère case de la liste à lire, la dernière case à lire, et le pas
//On initialise les list avec un nombre max assez grand
ClrList3Ù
ClrList4Ù
50ãDim List 3Ù
50ãDim List 4Ù
//On détermine le point de départ
EãList 3[1]Ù
FãList 4[1]Ù
E-1ãXÙ //On détermine a partir de quelle coordonnées X de la courbe commencer a lire les valeurs
2ãYÙ //Quand Y sort de l'écran on arrête de dessiner donc ce serait bête de ne pas dessiner à cause de l'ancien Y qui était en dehors
2ãPÙ //La case de la liste par laquelle on va commencer à remplir
//Boucle de détermination des points de la courbe
While 1Ù
-((X-A)/B)²+CãYÙ //Notre fonction à dessiner
//On écrit les coordonnées du point dans les listes
XãList 3[P]Ù
YãList 4[P]Ù
Y<1×BreakÙ //Si le point sort de l'écran on arrête
X-1ãXÙ //On va de la droite vers la gauche donc on enlève 1 à X
//Pour avoir un dessin aussi rapide peu importe la taille de la courbe
X-1-(E-X)*0.2→X //Plus le nombre de points augmente moins on en comptabilise. Merci Ninestars !
P+1ãPÙ //On passe à la case suivante de la liste
WhileEndÙ
PãTämaxÙ //Taille de la liste
Graph(X,Y)=(List 3[T],List 4[T]) //On dessine le graphe
Citer : Posté le 22/12/2015 13:28 | #
Il n'y a malheureusement pas plus rapide que Graph Y=. Ou sinon il faut calculer f(x) pour chacun des pixels à afficher, puis utiliser le super drawstat.
Citer : Posté le 22/12/2015 13:29 | #
Il n'y a malheureusement pas plus rapide que Graph Y=. Ou sinon il faut calculer f(x) pour chacun des pixels à afficher, puis utiliser le super drawstat.
Sauf que le Super DrawStat est un graphe paramétrique donc accessoirement nécessairement plus lent que le graphe classique.
Citer : Posté le 22/12/2015 13:30 | #
J'y ai pensé mais rien que remplir les listes seraient long à mourir. Merci de votre aide. Je vais rester la dessus
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 22/12/2015 13:30 | #
Sur une centaine de points il est bizarrement plus rapide que le graphe classique
Citer : Posté le 22/12/2015 13:33 | #
Vraiment ? J'ai seulement qqs points alors c'est partii !
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 22/12/2015 13:36 | #
Sur ce code, la solution par Super DrawStat (une fois les listes remplies) est beaucoup plus rapide…
DrawGraph
For 1->I To 127
I*(6/127)-3->X // Pour le centrage du graphe
X->List 1[I]
[b]Y[/b]1->List 2[I]
Next
Graph(X,Y)=(List 1[T], List 2[T])
Citer : Posté le 22/12/2015 18:29 | #
Sur une centaine de points il est bizarrement plus rapide que le graphe classique
Ça ne m'étonne pas beaucoup, j'imagine que le graphe standard fait le calcul pour les 128 points visibles à l'écran. Avec le graphe paramétrique, on peut réduire le nombre de points et les relier simplement entre eux.
Citer : Posté le 22/12/2015 22:50 | #
J'ai surtout l'impression que le graphe classique fait plus que 128 points : sur du 1/x, quand on tend vers 0 le résultat n'est pas pareil via Super Drawstat
Citer : Posté le 23/12/2015 11:55 | #
En SuperDrawStat on peut se débarrasser des listes en mettant directement les expressions des coordonnées en paramètre.
Et la variable Toptch défini le Pas. Autant s'en servir
128->Tomax
3->Toptch
Graph(X,Y)=(T,T^2)
Citer : Posté le 23/12/2015 11:56 | #
J'ai trouvé une manière plus rapide mais merci
J'edit le post de base pour la mettre.
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 23/12/2015 11:58 | #
Pour accélérer l'affichage d'une fonction, tu peux augmenter la valeur de dot dans le V-Window ! je le fais souvent sur les Ti car elles sont très lentes à afficher les fonctions. Cela augmente l'espace entre les points du graph mais ça ne se voit pas si tu sélectionnes Connect dans le Draw Type du Setup.
Du coup en me relisant, je me demande si j'ai été clair !
Citer : Posté le 23/12/2015 12:00 | #
Pas bête ça 9*
Citer : Posté le 23/12/2015 12:19 | #
J'ai rien compris Fab
J'ai éditer pour montrer comment j'ai fait. C'est de la bidouille mais ça marche bien
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 23/12/2015 14:25 | #
C'est bien compliqué ton code Matt
Merci DS
Citer : Posté le 23/12/2015 15:55 | #
Comme c'est moi qui l'ai écrit ça me parait simple et clair
Donc je vois pas pourquoi tu le trouves compliqué
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 23/12/2015 17:53 | #
Pourquoi c'est compliqué ?
// Pourquoi faire des listes de 50 ? Et si ton programme a besoin de liste de taille 60 ?
// Autant faire des listes vides que tu agrandies au fur et à mesure (le Basic le permet)
ClrList3
ClrList4
50→Dim List 3
50→Dim List 4
//Un point de départ ? Si tu évalues ta fonction en E, tu obtiens ton point de départ, alors pourquoi le gérer à part ?
E→List 3[1]
F→List 4[1]
E-1→X
2→Y // Tu es sensé trouver Y avec la formule -((X-A)/B)²+C→Y, pas en l'imposant. Encore une fois tu fais une exception.
2→P // Et voilà ! Tu pourrais commencer à 1 et retirer les deux trucs du dessus. Voire à 0 et retirer les quatres trucs du dessus...
// Une boucle avec un P qui augmente de 1... C'est du For
While 1
-((X-A)/B)²+C→Y
X→List 3[P]
Y→List 4[P]
Y<1⇒Break
X-1→X
// 4 conditions !!! mais il doit bien y avoir un moyen de généraliser ça non ;)
E-X>5⇒X-1→X
E-X>10⇒X-1→X
E-X>18⇒X-1→X
E-X>28⇒X-1→X
// Les 5 lignes, c'est à peu de choses prêt : X-1-(E-X)*0.2→X
P+1→P
WhileEnd
P→Tθmax
Graph(X,Y)=(List 3[T],List 4[T])
Citer : Posté le 23/12/2015 18:00 | #
Voila ma justification
// Pourquoi faire des listes de 50 ? Et si ton programme a besoin de liste de taille 60 ?
// Autant faire des listes vides que tu agrandies au fur et à mesure (le Basic le permet)
//Je ne savais pas qu'on pouvait agrandir les listes au fur et a mesure sans effacer (j'avais un vague souvenir mais depuis le temps que je n'avais pas touché à une calculatrice)
ClrList3
ClrList4
50→Dim List 3
50→Dim List 4
//Un point de départ ? Si tu évalues ta fonction en E, tu obtiens ton point de départ, alors pourquoi le gérer à part ?
//Ca j'en ai besoin dans mon prog ;) Je le faisait sans avant mais j'en ai besoin mtn
E→List 3[1]
F→List 4[1]
E-1→X
2→Y // Tu es sensé trouver Y avec la formule -((X-A)/B)²+C→Y, pas en l'imposant. Encore une fois tu fais une exception. : Vrai mais je ne sais pas pourquoi dès fois ça buguait sans ça...
2→P // Et voilà ! Tu pourrais commencer à 1 et retirer les deux trucs du dessus. Voire à 0 et retirer les quatres trucs du dessus...
// Une boucle avec un P qui augmente de 1... C'est du For : On peut commencer à 2 dans une boucle for ?
While 1
-((X-A)/B)²+C→Y
X→List 3[P]
Y→List 4[P]
Y<1⇒Break
X-1→X
// 4 conditions !!! mais il doit bien y avoir un moyen de généraliser ça non : peut etre je vais voir mais c'est de la bidouille, ca fonctionne donc je n'ai pas forcement réfléchi a l'optimisation
E-X>5⇒X-1→X
E-X>10⇒X-1→X
E-X>18⇒X-1→X
E-X>28⇒X-1→X
// Les 5 lignes, c'est à peu de choses prêt : X-1-(E-X)*0.2→X : Merci !
P+1→P
WhileEnd
P→Tθmax
Graph(X,Y)=(List 3[T],List 4[T])
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 26/12/2015 00:13 | #
J'ai pas programmé depuis plusieurs année en Basic, mais pour les boucles for, d'après mes vagues souvenir, il me semble que c'est très simple ...
For 2->Z To 200 Step 1 //On va de 2 à 200 avec un incrément de 1
...
Next
Citer : Posté le 26/12/2015 10:54 | #
C'est ça je ne pensais pas qu'on pouvait le faire commencer à deux. Je croyais que cette valeur était l'incrément. Merci Xav
Un beat them all pour les CPC 19
Un jeu de Tank multijoueur en version graphique
Un jeu de boxe rigolo
Le moteur de combat épique d'un RPG
soccer physics : Un jeu de foot totalement wtf !
Survie 1 & 2 te laisseras-tu attraper par la méchante IA ?
Séquestrez les tous avec Catch'em all !
Joué à la calcultarice et pécher ? Facile !
Battle un système de combat dément !!
Débombe pas tout à fait un démineur
Mon mario pour le concours des 10 ans de PC
Casio jump un doodle jump pas comme les autres !
Rush four your life : tu cours ou tu meurs
Cookie clicker ! More cookies MOOORE !
Move et esquive : bouge pour esquiver les ennemis !
Guitar Hero !! Let's rock !
INVASION : Au secours on se fait envahir !
Un devine nombre entièrement customisable (mon 1er jeu)
Un outil pour dessiner des sprites en super drawstat et qui vous le compile pour vous donner un code utilisable dans vos programmes
Un super programme de dessin bourré de trucs funcs
Sortir une version finale de Tankasio
Bien m'améliorer en C parce que pour l'instant c'est pas jojo
Une ou plusieurs idées qui mûrissent petit à petit
Citer : Posté le 26/12/2015 13:33 | #
Btw si ton pas est de 1 (Step 1), tu n'es pas obligé de l'indiquer.
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le