Poster un nouveau sujet Poster une réponse Page: 1,      >>
[TUTO] Comment utiliser les fonctions graphiques (de dessin)
Auteur Message
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 09 Nov 2010, 22:09   Citer 

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.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 11 Nov 2010, 0:39   Citer 

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.)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 11 Nov 2010, 6:03   Citer 

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

 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 11 Nov 2010, 15:28   Citer 

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!

 Adresse email Haut de page Bas de page 
 
programath



Autorisation : Membre
Nb de messages : 36
Inscrit le : Jeu 24 Fév 2011, 21:45
Posté le : Dim 20 Mar 2011, 1:28   Citer 

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 ?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 20 Mar 2011, 1:36   Citer 

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.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Wirekey



Autorisation : Membre
Nb de messages : 240
Inscrit le : Mer 17 Jui 2009, 0:54
Posté le : Dim 20 Mar 2011, 11:44   Citer 

Text(-1,Y,X,"TEXTE EN GROS (DISPONIBLE A PARTIR DE TI-83+)
Text(Y,X,"TEXTE EN PETIT (CLASSIC)
moodforlove.gif

 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Dim 20 Mar 2011, 17:35   Citer 

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



 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 27 Jui 2011, 20:52   Citer 

bonjour/bonsoir,
je ne puis m'empecher de relever le défit posté plus haut :

Citer : persalteas
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

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 28 Jui 2011, 9:01   Citer 

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.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 28 Jui 2011, 9:04   Citer 

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

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 28 Jui 2011, 9:06   Citer 

Ok, compris. Merci !

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
cKZO
Invité
Posté le : Mer 23 Nov 2011, 20:51   Citer 

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

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 23 Nov 2011, 21:01   Citer 

ç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.

 Adresse email Haut de page Bas de page 
 
cKZO
Invité
Posté le : Mer 23 Nov 2011, 21:15   Citer 

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

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 23 Nov 2011, 21:17   Citer 

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.

 Adresse email Haut de page Bas de page 
 
cKZO
Invité
Posté le : Mer 23 Nov 2011, 21:51   Citer 

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

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 23 Nov 2011, 23:20   Citer 

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...

 Adresse email Haut de page Bas de page 
 
cKZO
Invité
Posté le : Ven 25 Nov 2011, 13:48   Citer 

happy.gif ha oui ok c que je regardais dans le catalogue
ok merci cupsmiley.gif

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 06 Oct 2012, 11:08   Citer 

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 !

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink