le test
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
Diff: TraceMatrix/Trace.cpp
- Revision:
- 17:c9b66df08920
- Parent:
- 16:b1bf03ee2878
- Child:
- 18:1864979c9b3c
--- a/TraceMatrix/Trace.cpp Mon Apr 22 15:11:14 2019 +0000 +++ b/TraceMatrix/Trace.cpp Wed Apr 24 11:42:10 2019 +0000 @@ -3,33 +3,29 @@ LCD_DISCO_F429ZI lcdT; void DisplayMatrix(int xexp, int yexp, matrice* mat, int TaillePix,long long int couleur){ - int xinit = yexp; //C'est pas très clair mais il y a une invertion des x et des y dans la suite donc on fait ça -- à coriger - int yinit = xexp; lcdT.SetTextColor(couleur); - matrice WorkingMatrix = *mat; - for(int y=0;y<WorkingMatrix.tailleY;y++){ + matrice WorkingMatrix = *mat; //On récupère une matrice à partir du pointeur que l'on a donné + for(int y=0;y<WorkingMatrix.tailleY;y++){ //On regarde chaque élément de la matrice et on voit si on doit ou non le colorer. for(int x=0;x<WorkingMatrix.tailleX;x++){ if(WorkingMatrix.tableau[WorkingMatrix.tailleY-y-1][x]==1){ - lcdT.FillRect(xinit + TaillePix * y,yinit + TaillePix * x,TaillePix,TaillePix); + lcdT.FillRect(yexp + TaillePix * y,xexp + TaillePix * x,TaillePix,TaillePix); } } } - free(mat); + free(mat); //On libère la RAM occupée par la matrice /*lcdT.SetTextColor(LCD_COLOR_BLUE); //lignes de test lcdT.FillRect(xinit,yinit,TaillePix,TaillePix); */ } void DisplayMatrixClean(int xexp, int yexp, matrice* mat, int TaillePix,long long int couleur,long long int couleurFond){ - int xinit = yexp; - int yinit = xexp; - lcdT.SetTextColor(couleurFond); + lcdT.SetTextColor(couleurFond); //Avant de faire comme la fonction précédente on trace un rectangle en fond de ce que l'on va tracer. matrice WorkingMatrix = *mat; lcdT.FillRect(xinit,yinit,TaillePix * WorkingMatrix.tailleY,TaillePix * WorkingMatrix.tailleX); lcdT.SetTextColor(couleur); for(int y=0;y<WorkingMatrix.tailleY;y++){ for(int x=0;x<WorkingMatrix.tailleX;x++){ if(WorkingMatrix.tableau[WorkingMatrix.tailleY-y-1][x]==1){ - lcdT.FillRect(xinit + TaillePix * y,yinit + TaillePix * x,TaillePix,TaillePix); + lcdT.FillRect(yexp + TaillePix * y,xexp + TaillePix * x,TaillePix,TaillePix); } } } @@ -294,8 +290,8 @@ void BS_displayChiffre(int x,int y,int num,int taille,long long int couleur){ - matrice* mmm; - switch(num){ + matrice* mmm; //On utilisera une matrice que l'on ne connais pas encore + switch(num){ //On remplacera mmm par la matrice qui correspond au chiffre que l'on veut écrire case 0: mmm = BS_0(); break; @@ -329,7 +325,7 @@ default: mmm = BS_na(); } - DisplayMatrix(x,y,mmm,taille,couleur); + DisplayMatrix(x,y,mmm,taille,couleur); //Une fois que l'on a la metrice que l'on souhaite on la dessine } void BS_displayChiffreClean(int x,int y,int num,int taille,long long int couleur,long long int couleurFond){ @@ -368,16 +364,16 @@ default: mmm = BS_na(); } - DisplayMatrixClean(x,y,mmm,taille,couleur,couleurFond); + DisplayMatrixClean(x,y,mmm,taille,couleur,couleurFond); //Comme la fonction précédente mais on met un fond uni avant } void BS_displayChiffre100Clean(int x,int y,int num,int taille,long long int couleur,long long int couleurFond){ - int a = num/100; - int b = (num- a * 100)/10; - int c = num - a * 100 - b * 10; - lcdT.SetTextColor(couleurFond); + int a = num/100; //On récupre les centaines de num + int b = (num- a * 100)/10; //On récupère les dizaines + int c = num - a * 100 - b * 10; //On récupère les unités qui restent + lcdT.SetTextColor(couleurFond); //On fait le fond lcdT.FillRect(y,x,taille * 9,taille * 17); - BS_displayChiffre(x,y,a,taille,couleur); + BS_displayChiffre(x,y,a,taille,couleur); //On affiche à la suite les 3 nombres. BS_displayChiffre(x + 6 * taille,y,b,taille,couleur); BS_displayChiffre(x + 12 * taille,y,c,taille,couleur); } \ No newline at end of file