Retourner du texte (faire une symétrie)

Signaler
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015
-
Bonjour,

Je cherche à faire cela en C :

Est ce possible ? Si oui, comment s'y prendre ?

Merci beaucoup ! :)
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"><v:f eqn="sum @0 1 0"><v:f eqn="sum 0 0 @1"><v:f eqn="prod @2 1 2"><v:f eqn="prod @3 21600 pixelWidth"><v:f eqn="prod @3 21600 pixelHeight"><v:f eqn="sum @0 0 1"><v:f eqn="prod @6 1 2"><v:f eqn="prod @7 21600 pixelWidth"><v:f eqn="sum @8 21600 0"><v:f eqn="prod @7 21600 pixelHeight"><v:f eqn="sum @10 21600 0"></v:f><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"><o:lock v:ext="edit" aspectratio="t"></o:lock><v:shape id="Image_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75" style="width: 124.5pt; height: 96.75pt; visibility: visible;"><v:imagedata src="file:///C:%5CDOCUME%7E1%5CFdiedler%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""><o:lock v:ext="edit" aspectratio="f"></o:lock></v:imagedata></v:shape></v:path></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas></v:stroke></v:shapetype>

14 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
salut

en C brut, on ne manipule pas d'images. si on ne sait pas comment tu affiches la premiere, on ne peut pas chercher a t'aider pour afficher la seconde.
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Oui je comprends, mais c'est assez compliqué en fait.

On va utiliser un microcontroleur pour alimenter un clavier et un écran LCD. A partir du clavier, on va programmer les touches en C pour afficher un texte et grace à un bouton, il va falloir créer une fonction pour renverser le texte comme sur l'image.

Bien sur, je ne demande pas du code maintenant, je voulais juste m'assurer si c'était au moins possible et si oui, comment s'y prendre.

Merci :)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
bah...

ta transformation, c'est ca :
y = max - y;
x = max - x;
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Merci mais quez représente x, y et max ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
y = maxY - y;
x = maxX - x;

x et y c'est la position de tes px
maxX la dimention de ton ecran (largeur)
maxY la hauteur
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Ok merci pour le tuyau ^^

Une dernière question débile : Quand on programme un clavier AZERTY en C (donc quand tu appuies sur le A, je veux avoir la lettre A s'afficher sur l'écran), est ce que la lettre A est formé d'un seul pixel ou de plusieurs pixels ?

Dans chacun des cas, comment appliquer ta formule mathématiques pour les renverser ?

Merci encore
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

un autre manier très simple comme dans les vieux jeu tu crée ton alphabet de A a Z

example char a[]={ 00100
                              01010
                              01110
                              01010 }
dessin pas tres reussi mes ses la base fait tous les lettre
apres tu dessin selement le 1=pixel 0=transparent pixel par pixel
et pour renverser  tu par de la fin la loop en envers!!!

Vector_kiev
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Ouais pourquoi pas ! Par contre, j'ai pas compris comment on fait pour renverser avec ta méthode [../auteur/NANONAVICH/1350849.aspx nanonavich] ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
... tu devrais commencer par lire de la doc... parce-que demander si une lettre est formee d'un seul pixel, c'est un peu debile comme question...
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008

"c'est un peu debile comme question..."
Merci de me le rappeler c'est d'ailleurs pour cela que je l'avais spécifier dans la question !

Je n'ai pas de doc car on a pas encore commandé le clavier et à mon avis, il n'y aura pas de doc avec ^^

Enfin merci quand même.
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

Char a[]={              00100
                              01010
                              01110
                              01010 }

dessin en endrois
for(x=0;x<5;x++) {
 for(y=0;y<5;y++)  {  if(a[i]=='1') setpixel(x,y,15); i++;

}}

le meme dessin en envers
for(x=0;x<5;x++) {

 for(y=5;y>0;y--)  {  if(a[i]=='1') setpixel(x,y,15); i++;


}}
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

non  en envers ses pluto

tu commence a la fin de dessin memoire
i=20;

le meme dessin en envers
for(x=0;x<5;x++) {
 for(y=0;y<5;y++)  {  if(a[i]=='1') setpixel(x,y,15);
  i--;
}}

Vector_kiev
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
ouais sauf que ton code ne marchera pas (ta syntaxe pour ta liste et ton == '1' sont mauvais)
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

uais sauf que ton code ne marchera pas (ta syntaxe pour ta liste et ton == '1' sont mauvais)

lol, va falloir que je fais le programme au complet, sais juste un exemple
pour montrer cette technique

char paranoia[26]={              "00100010100111001010" } ;
int i=25;

for(x=0;x<5;x++) {
 for(y=0;y<5;y++)  {  if(paranoia[i]=='1') setpixel(x,y,15);
  i--;
}}