Forum

Catégorie : Discussions générales
Forum : Articles
Vues : 11356
Réponses : 20
Type : discussion
Etat : réponses autorisées

[TUTO] Comment utiliser les fonctions graphiques (de dessin) - Page 1 / 2

Persalteas le 09/11/2010 à 22:09
J'ai remarqué que beaucoup des débutants ne savaient pas les utiliser.

C'est pourquoi je fais un petit topic cours dessus.

Tout d'abord, si vous utilisez des fonctions graphiques, il faut bien penser à:
-bien connaitre les dimensions de la fenêtre: pour faciliter le dessin, on utilise souvent les dimensions suivantes: X de 0 à94 et Y de 0 à 62, car cela permet que chaque pixel aie ses coordonées propres.

-désactiver les fonctions de maths ( menu Y= ) avec la fonction FonctOff.

On peut donc commander à chaque pixel de s'allumer ou s'éteindre.

Donc, une fois ces détails réglés, on peut utiliser les fonctions graphiques.


Je procéderai dans l'ordre:

fonction EffDessin ( ClrDraw ):

Elle se trouve en faisant: [2nd][prgm][1]

Elle efface de votre écran graphique tout ce qui est dessiné avec les fonctions dont je parlerai dans ce topic.
Utilisez la, vous allez vite comprendre, c'est très simple.

fonction Ligne( ( Line( ):

Elle se trouve en faisant: [2nd][prgm][2]

Elle sert à tracer une ligne d'un point à un autre sur l'écran.
Elle peut même en sortir.

On l'utilise comme ça:
Ligne( Xéxrémité1 , Yéxtrémité1 , Xéxtrémité2 , Yéxtrémité2 ,couleur.

Les coordonnées des points dépendent des dimensions de votre fenêtre.

La couleur: si on ne la précise pas, ou qu'on met 1, ou unevariable égale à 1, Les pixels de la ligne s'allument.
Si on met 0 , les pixels de la ligne s'éteignent.


fonction Horizontale ( Horizontal ):

Elle se trouve en faisant [2nd][prgm][3]

Elle sert à tracer une droite horizontale:
Horizontale 47
va tracer une ligne horizontale sur votre écran en Y=47.

Facile.

fonction Verticale ( Vertical ):

Elle se trouve en faisant [2nd][prgm][4]

Elle sert à tracer une droite verticale sur votre écran.
Verticale 8
trace une ligne verticale sur votre écran en X=8.

fonction Tangente( ( Tangent( ):

Elle se trouve en faisant [2nd][prgm][5]

Elle sert à tracer la tangente en un point d'une courbe qui est tracée sur votre écran graphique.
Tangente( fonction , Xpoint de la courbe

La fonction doit se trouver dans votre éditeur de fonctions (le menu Y= ).
vous devez rentrer à cet endroit la son numéro en faisant [var][>][1] et en sélectionnant la bonne fonction.

Exemple, si dans votre éditeur de fonctions, on a:
Y1=X²+2X-3

Et bien, pour tracer la tangente à cette courbe en X=5, on écrit:
Tangente(Y1,5

Moins facile, j'avoue.

fonction DessFonct ( DrawF ):

Elle se trouve en faisant [2nd][prgm][6]

Eh bien elle sert à tracer une fonction sans passer par l'éditeur de fonctions.
par exemple: DessFonct 3X+2 vous trace la courbe représentative de la fonction f(crazy.gif=3x+2.

Fastoche, pas souvent utile dans les jeux. xD

fonction Ombre( ( Shade( ):

Elle se trouve en faisant [2nd][prgm][7]

Alors là, ça se complique:
Elle sert à tracer une zone d'ombre sur le graphique.

On peut l'utiliser de plusieurs façons:

Ombre( Ybas , Yhaut
vous trace sur toute la largeur de l'écran une zone d'ombre entre les deux ordonnées précisées.

Ombre( Ybas , Yhaut , Xgauche , Xdroite
vous trace un rectangle d'ombre selon les coordonnées fournies.
petit inconvénient, ça vous fait aussi deux horizontales en Yhaut et Ybas.

Ombre( Ybas , Yhaut , Xgauche
vous trace une zone d'ombre de la hauteur choisie, depuis le X demandé jusqu'à la droite de l'écran.
on a aussi les deux horizonales, comme pour tous les cas suivants.

Ombre( Ybas , Yhaut , Xgauche , Xdroite , nombre
Si nombre=1, l'ombre se trace verticalement.
Si nombre=2, l'ombre se trace horizontalement
Si nombre=3, l'ombre se trace avec une pente dans un sens
Si nombre=4, la même pente, mais dans l'autre sens.


Ombre( Ybas , Yhaut , Xgauche , Xdroite , nombre , pas
L'ombre va allumer un pixel sur le pas:

pas=2 1 pixel sur 2 , pas=3 1 pixel sur 3... jusqu'à 8.

Et bien sur...
Pour les Y, on peut remplcer les valeurs par des fonctions:

Ombre(3X²-2sin(X),3X²-2sin(X)-5,2,4,2,5

Ombragera l'espace entre les deux fonctions sur l'intervalle de X [2;4], en rayures horizontales, un pixel sur 5.

fonction DessRecip ( DrawInv )

On la trouve en faisant [2nd][prgm][8]

Je sais qu'elle sert à dessiner la fonction réciproque de celle que vous allez préciser, mais comme je suis pas très calé en maths, je sais pas ce que c'est.

DessRecip 3X²+2racine(X) va vous tracer la réciproque de cette fonction.

Que ceux qui utilisent un jour cette fonction dans un prog m'appellent. xD


fonction Cercle( ( Circle( )

On la trouve en faisant [2nd][prgm][9]
Eh ben ça trace un cercle.
ça met un petit peu de temps à le tracer, c'est normal ne vous inquiétez pas.

Cercle( Xcentre , Ycentre , rayon
Attention, le rayon ne se compte pas en pixels, mais selon les dimensions de votre fenêtre.
Si rien n'apparait, c'est que vous avez mis un rayon trop grand.

(Astuce pour les 83+/84+ écrivez: Cercle(X,Y,R,{i} , vous allez voir, ça va plus vite)


fonction Texte( ( Text( )

On la trouve en faisant [2nd][prgm][0]

Cette fonction permet d'écrire sur la partie graphique.
par contre, elle diffère des autres fonctions car elle ne dépend pas des dimensions de votre fenêtre: pour elle les X vont de 0 à 94, les Y de 62 à 0 (oui, vous avez bien lu, le zéro se trouve en haut et le 62 en bas).

Texte( Y1ere lettre du texte , X1ere lettre du texte , texte entre guillemets 1 , texte entre guillemets 2 , texte entre guillemets 3...

Remarques:
Le texte peut être remplacé par une variable ou un calcul, et dans ce cas, pas besoin de guillemets.

Y1 ne peut pas dépasser 56 car après y'a plus de place sur l'écran.

Attention, si vous mettez un texte trop long il sort de l'écran.

Les coordonées de la lettre:
Si j'ai comme lettre un P:
P
Les coordonées de cette lettre se situent dans sont "coin" en haut à gauche.


fonction Pt-On(

On la trouve en faisant [2nd][prgm][>][1]

Elle sert à allumer un point sur votre écran, selon les coordonées de la fenêtre.

Pt-On(X,Y,nombre

Si nombre=1: le pixel seul s'allume
Si nombre=2: le pixel ne s'allume pas, mais tous les autres pixels qu'il touche s'allument (ça fait un petit carré).
Si nombre=3: une croix s'allume.

fonction Pt-Off(

On la trouve en faisant [2nd][prgm][>][2]

Comme Pt-On, mais ça éteint au lieu d'allumer.

fonction Pt-Change(

On la trouve en faisant [2nd][prgm][>][3]

Pt-Change(X,Y
Si le pixel est allumé, il s'éteint, et inversement.

fonction Pxl-On(

On la trouve en faisant [2nd][prgm][>][4]
Elle allume le pixel, mais utilise les mêmes coordonées que texte(

Pxl-On(Y,X

fonction Pxl-Off(

On la trouve en faisant [2nd][prgm][>][5]

Elle éteint ce que la précédente allume.

fonction Pxl-Change(

On la trouve en faisant [2nd][prgm][>][6]

La même que Pt-Change, mais avec les coordonnées de texte(
(ne dépend pas de la fenêtre, tout comme les 2 dernières fonctions).

fonction Pxl-Test(

On la trouve en faisant [2nd][prgm][>][7]

Elle sert à savoir si un pixel est allumé ou non.
Elle utilise les mêmes coordonées que les 3 précédentes.

Si Pxl-Test(Y,X)=1 le pixel est allumé
Si Pxl-Test(Y,X)=0 le pixel est éteint.


fonction SauveImage( ( SauvePic )

On la trouve en faisant [2nd][prgm][<][1]

Elle sert à mettre en mémoire une image dessinée avec votre graphique.
une image prend 764 oct. de RAM.

SauveImage 0 à SauveImage 9 (tous les chiffres).

Sur 82 basique:

SauvePic Pic0 à SauvePic Pic9 (les Pic se trouvent en faisant [var][4])


fonction RappelImage( ( RclPic )

On la trouve en faisant [2nd][prgm][<][3]

Elle sert à réafficher l'image enregistrée.
Elle s'utilise de la même manière que SauveImage.

fonction SauveBDG( ( SauveGDB( )

On la trouve en faisant [2nd][prgm][<][2]

Elle sert à mettre en mémoire votre menu Y= (éditeur de fonctions).

SauveBDG 0 à SauveBDG 9 (tous les chiffres)

Sur 82 basique:
SauveGDB GDB0 à SauveGDB GDB9 (les GDB se trouvent en faisant [var][3])

fonction RappelBDG( ( RclGDB( )

On la trouve en faisant [2nd][prgm][<][4]

Elle sert à restituer les éditeurs de fonctions mis en mémoire, et s'utilise comme SauveBDG.


BDG veut dire Banque de Données Graphiques.


bon, c'est fini, si vous avez quelque réclamation à faire n'hésitez pas, si je me suis trompé etc...

Bon, je suis fatigué alors je vais me coucher.
bonne nuit.
linkakro le 11/11/2010 à 00:39
Je verrais bien ce sujet dans les articles.
Bon boulot.

Je désire préciser que les fonctions peuvent être utilisées dans l'écran principal, mais aussi certaines dans le graphe avec un "joli" curseur (pour cela, entrer dans le menu dessin alors que le graphe est actif, puis lancer la fonction.)
Sangohan38 le 11/11/2010 à 06:03
Moi aussi mais par contre, j'ai un problème au niveau de la mise en page et surtout des majuscules.
Edite moi ça vite fait et je déplace dans la section article.

Sangohan38
Persalteas le 11/11/2010 à 15:28
Eh ben, tant pis pour la section articles.

Il y a trop de phrases.

Un débutant débrouillard arrivera à retrouver ce topic.

EDIT: vu le petit nombre de débrouillards, je me suis dit que c'était dommage.Surtout que je peux le déplacer moi même maintenant Hahahahahaaaa!
programath le 20/03/2011 à 01:28
Ton poste m'a bien aidé ! je sais maintenant comment faire pas mal de chose plutot facile .
Sais-tu si il y a un moyen de faire un ovale ?
linkakro le 20/03/2011 à 01:36
Pas prévu d'office.

En modifiant la fenêtre et en traçant un cercle.
Car le cercle ne fait un cercle que si la fenêtre est équilibrée.
Wirekey le 20/03/2011 à 11:44
Text(-1,Y,X,"TEXTE EN GROS (DISPONIBLE A PARTIR DE TI-83+)
Text(Y,X,"TEXTE EN PETIT (CLASSIC)
moodforlove.gif
Persalteas le 20/03/2011 à 17:35
astuce pour zoomer sur un dessin: (comme dans la présentation du jeu quake 4)

le zoom in (ou zoom + en français) et pour dézoomer c'est zoom out (zoom -)

pensez avant à définir les facteurs de zoom Xfact et Yfact ( [var][1] et quelques), je vous conseille de mettre 1.5 dans les deux, IL FAUT QUE LES DEUX AIENT LA MEME VALEUR

entrez ensuite:

Code

For(A,1,4
Zoom In
Line(...
Line(...
etc... le dessin que vous souhaitez avec des lignes seulement

End
sandro le 27/06/2011 à 20:52
bonjour/bonsoir,
je ne puis m'empecher de relever le défit posté plus haut :
persalteas a écrit :
fonction DessRecip ( DrawInv )

On la trouve en faisant [2nd][prgm][8]

Je sais qu'elle sert à dessiner la fonction réciproque de celle que vous allez préciser, mais comme je suis pas très calé en maths, je sais pas ce que c'est.

DessRecip 3X²+2racine(X) va vous tracer la réciproque de cette fonction.

Que ceux qui utilisent un jour cette fonction dans un prog m'appellent. xD


J'ai donc fait un programme qui permet de tracer les suites récursives au premier degrès, strictement croissantes et positives d'une manière un peu particulierre pour la construction (en utilisant la fonction "DessRecip". (ce programme n'étant pas particulièrement utile, je ne le poste que ici pour ilustrer la fonction DessRecip et non dans les programmes des internautes).

Code
PlotsOff
FnOff
GridOff
AxesOn
ExprOn
Seq           //mode suite
ClrDraw
Input "u(n)=",Str1  //le n italique des suites
String>Equ(Str1,u  //suite
1ü ( ) A
" "+Str1+" " -> Str1
While A
inString(Str1,"u(n-1)",A -> A   //le n italique des suites
If A
sub(Str1,1,A-1)+"X"+sub(Str1,A+4,length(Str1)-A-5 -> Str1
End
sub(Str1,2,length(Str1)-2 -> Str1
Prompt nMin,nMax,u(nMin)      //tous 3 disponniblesdans [var] [1] [flèche gauche]
0 -> V
0 -> W
For(A,nMin,nMax   //disponnibles dans [var] [1] [flèche gauche]
If V<u(A    // u des suites
u(A -> V  // u des suites
If W>u(A  // u des suites
u(A -> W  // u des suites
End
Func
0 -> Xmin
V+1 -> Xmax
If V
Xmax -> Ymax
If W
-Xmax -> Ymin
String>Equ(Str1,Y1
DrawInv Y1
For(A,nMin+1,nMax   //disponnibles dans [var] [1] [flèche gauche]
Line(u(A-1),min(0,min(u(A-1),u(A))),u(A-1),max(0,max(u(A),u(A-1)
If A[différent de]nMax
Circle(0,0,Racine((u(A-1)²+u(A)²
End


Sandro

PS: désolé, je ne pouvait m'empecher de poster cette utilisation de DessRecip (j'ai du chercher 1/4 heure pour trouver une utilisation), au moment où j'ai suivi un lieu vers cette page moodforlove.gif
Persalteas le 28/06/2011 à 09:01
C'est quoi une suite récursive ?

Moi je connais les suites arithmétiques et les suites géométriques, mais récursives ça ne me dit rien.
sandro le 28/06/2011 à 09:04
Une suite récursive )récursive au premier degès) est une suite de la forme u(n+1)=f(u(n)).
En gros, u(n+1) dépend de u(n).

Sandro
Persalteas le 28/06/2011 à 09:06
Ok, compris. Merci !
cKZO le 23/11/2011 à 20:51
Salut, j’écris parce que je fais des programmes en graph et que j’ais un peu de mal
en fait je fais un jeu ou on dois tirer sur des petits carrées qui apparaissent et pour ça je met des “Effdessin” eyeonly.gif
mais le problème c que ça ralenti bcp le jeu et que on vois moins bien. Si je met pas le “Effdessin”, et bien la croix du viseur ne s’efface pas et c moche parce que après l’ecran est presque tt noir frozen.gif .Est-ce que quelqu'un de doué saurais comment faire pour que je puisse bouger le viseur sans laisser de traces? sans que l’ecran clignote et si possible sans que ça ralentisse le jeu? karate.gif
merci de votre réponse rapide (c pour un concour entre pots au lycée) cupsmiley.gif
Persalteas le 23/11/2011 à 21:01
ça dépend vraiment de la taille de ta croix.

Si c'est une croix faite avec 5 pixels, je te conseille la fonction Pt-Off(X,Y,3

Si c'est une plus grande, utilise la fonction Ligne(X1,Y1,X2,Y2,0

avec un 0 à la fin pour effacer au lieu de tracer.
cKZO le 23/11/2011 à 21:15
OK merci et si je met le 0 a chaque fois a la fin ça réaparaitra toujours quand ça reviendra au début?
tu penses que je dois faire la même chose a chaque fois que je tir sur un petit carré? ahh.gif

sinon merci ça a l'air de bien marcher!!! laugh.gif
Persalteas le 23/11/2011 à 21:17
Ben non: un coup sur deux il te faut le zéro (pour effacer) et un coup sur deux le 1 (pour afficher) ou rien du tout, ce qui revient à 1.

Ce que je te conseille, c'est de mettre une variable qui est égale à 1 ou 0 selon le moment du programme.
cKZO le 23/11/2011 à 21:51
OK merci beaucoup

encore une chose stp, sur bcp de programmes sur internet il y a des "Ymin" et des "Ymax"
or moi j'ai les "Xmin" et les "Xmax" mais sur ma calto ( TI 82 stat.fr ) g pas de "Ymin" ni de "Ymax"
tu saurais ou je pourrais les trouver? extraterre.gif
Persalteas le 23/11/2011 à 23:20
Euh... si tu arrives à trouver les Xmin et Xmax, tu as aussi trouvé les Ymin et Ymax..

Ils sont au même endroit: [vars][1] puis tu choisis celui que tu veux...
cKZO le 25/11/2011 à 13:48
happy.gif ha oui ok c que je regardais dans le catalogue
ok merci cupsmiley.gif
Persalteas le 06/10/2012 à 11:08
Je remonte ce topic pour vous faire part d'un programme de Kerm Martian, qu'il a publié dans son Livre de progra TI, et qui permet de tracer à l'écran des polygones réguliers !

Ce code est simplement génial.


Code

:Lbl 1
:Input "NBRE COTES=",S
:Input "RAYON=",R
:If R<0 ou S<3 ou S=/=partent(S
:Goto 1
:ZStandard
:ZOrthonormé
:Degré
:For(A,0,359,360/S
:Ligne(Rcos(A),Rsin(A),Rcos(A+360/S)),Rsin(A+360/S
:End


Et hop ! des carrés, des pentagones, hexagones, heptagones, octogones, multigones en tous genre à porté de main !

Le gros du principe consiste à avoir le nombre de cotés dans S et le rayon dans R, puis d'appliquer selon votre X et Y souhaité:
Code

:For(A,0,359,360/S
:Ligne(X+Rcos(A),Y+Rsin(A),X+Rcos(A+360/S)),Y+Rsin(A+360/S
:End


J'espère que ça vous servira !