Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1981 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] hexa, besoin explication

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] hexa, besoin explication

n°531681
glenn
Posté le 05-10-2003 à 10:37:45  profilanswer
 

Voilà je suis en train de faire une petit prog en dgraphics (2d) et j'ai recuperer une fonction de blit bien chouette (tut. jpeg) qui permet à partir d'un nombre du type 0xFFFFFFFF passé en paramètre de gérer la transparence ansin que la coloration du blit.
 
Donc le truc c que les 2premiers "F" s'occuppent de la transparence (base 16 donc de 0->9->A->F si j'ai bien compris :crazy:) et les autres des composantes R-G-B.
Bon mon problème est que j'aimerais coder un Fade qui joue sur ce paramètre de transparence. Mais comment faire pour gérer independamment les infos sur la transparence et les infos sur les couleurs dans un seul nombre --->> nb--??? (au fait de type UINT = unsigned int?? :??:).
 
J'ai jamais trop manier de nombre hexadécimaux et j'aurais besoin de quelques (grosses) explications sur ce sujet!
:jap: :jap:! Allez à votre bon coeur messieurs dames ! :jap: :jap:

mood
Publicité
Posté le 05-10-2003 à 10:37:45  profilanswer
 

n°531685
Joel F
Real men use unique_ptr
Posté le 05-10-2003 à 10:55:29  profilanswer
 

Le nombre hexa n'a pas de signification particuliére.
C'est un style d'écriture du nombre.
 
Tu peut modifier ton alpha en utilisant des masques binaires.

n°531687
glenn
Posté le 05-10-2003 à 11:06:36  profilanswer
 

L'écriture je savais, mais ce qui me chagrinais c'est de pouvoir stocker plusieurs infos à priori incompatibles, trans. et couleur, dans un même entier.... :ouch:
Euh comment ça marche les masques binaires (sorry, y faut tout m'éxpliquer moi!!! :D)

n°531689
Taz
bisounours-codeur
Posté le 05-10-2003 à 11:09:31  profilanswer
 

c'est écrit dans ton bouquin de C++

n°531691
glenn
Posté le 05-10-2003 à 11:12:54  profilanswer
 

bah non ^_^ :p
Bon d'accord je surmonte ma flemme --->>> google  ;)

n°531692
Taz
bisounours-codeur
Posté le 05-10-2003 à 11:15:56  profilanswer
 

étant donné que tu as une culture informatique apparemment limitée, l'achat d'un vrai livre d'apprentissage est loin d'être superflue. Programmer, c'est un métier, les mots clefs les plus recherchés sur google {sex, Lolita, anal, StarWars, ...}, je crois que tu es capable de comprendre quel média te permettra de progresser

n°531693
Joel F
Real men use unique_ptr
Posté le 05-10-2003 à 11:17:15  profilanswer
 

On va partir du postulat que tu connais un minimum le C.
 
Un masque binaire ets une valeur numérique qeu l'on va combiner grace aux operateurs binaires du C à savoir :
 

Code :
  1. &, |, ^


 
respectivement ou bit à bit, et bit à bit et oue xclusif bit à bit.
 
En clair, que ce passe t il, si on prend la représentation binaire d'un nombre ? :
 

Code :
  1. // x = 27 en décimal
  2. x = 00011011
  3. // mask = 13 en decimal
  4. mask = 00001101
  5. x & mask = 00011011
  6.          & 00001101
  7.            ---------
  8.            00001001 = 9
  9. x | mask = 00011011
  10.          | 00001101
  11.            ---------
  12.            00011111 = 63
  13. x ^ mask = 00011011
  14.          ^ 00001101
  15.            ---------
  16.            00000110 = 6


Si tu veux + d'infos :
 
OU
x y  (x | y)
1 1     1
1 0     1
0 1     1
0 0     0
 
 
ET
x y  (x & y)
1 1     1
1 0     0
0 1     0
0 0     0
 
 
OU EXCLUSIF
x y  (x ^ y)
1 1     0
1 0     1
0 1     1
0 0     0
 
A partir de la a toi de trouver le mask et la ou les opération s permettant de passer de ta couleur 32 bits à la meme couleur avec un alpha différent.
 
Le truc serait par exemple :
 

Code :
  1. unsigned long couleur = 0x2255FC44; // couleur bidon
  2. unsigned long mask1   = 0xFF000000; // mask d'extraction de l'alpha
  3. unsigned long mask2   = 0x00FFFFFF; // mask d'extraction de la couleur
  4. unsigned long alpha = couleur & mask1 // alpha = 0x22000000
  5. unsigned long coul  = couleur & mask2 // coul  = 0x0055FC44
  6. alpha = alpha*2       // alpha = 0x44000000
  7. couleur = alpha | coul // couleur = 0x4455FC44


 
voila

n°531694
Taz
bisounours-codeur
Posté le 05-10-2003 à 11:18:45  profilanswer
 

terrain glissant ...
 
on monte une boîte de e-learning ?

n°531695
Joel F
Real men use unique_ptr
Posté le 05-10-2003 à 11:20:15  profilanswer
 

deconne pas j'ai des cours de ca  à donner cette année :D
l'info en fac de médecine miam miam

n°531696
glenn
Posté le 05-10-2003 à 11:21:44  profilanswer
 

Taz : Arff c bon, moi programmer je fais ça pour le plaisir.
Faut pas s'énerver :D :lol:
 
JoelF : Merci encore, c sympa d'avoir pris le temps de la réponse :jap: :jap: :jap: :jap:  
 

mood
Publicité
Posté le 05-10-2003 à 11:21:44  profilanswer
 

n°531697
Taz
bisounours-codeur
Posté le 05-10-2003 à 11:22:41  profilanswer
 

je m'énerve pas. juste que si tu veux jouer avec ton train électrique sans le manuel, le plaisir s'en va vite

n°531717
antp
Super Administrateur
Champion des excuses bidons
Posté le 05-10-2003 à 11:49:09  profilanswer
 

Taz a écrit :

si tu veux jouer avec ton train électrique sans le manuel, le plaisir s'en va vite


 
y a un manuel avec les trains électriques ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°531720
chrisbk
-
Posté le 05-10-2003 à 11:52:35  profilanswer
 

Taz a écrit :

Programmer, c'est un métier, les mots clefs les plus recherchés sur google {sex, Lolita, anal, StarWars, ...}, je crois que tu es capable de comprendre quel média te permettra de progresser


 
le Taz, plus ca va, plus ses posts deviennent opaques a mes yeux [:wam]

n°531735
Joel F
Real men use unique_ptr
Posté le 05-10-2003 à 12:05:27  profilanswer
 

je pense qu'il veut dire que google c pas forcement LE moyen de trouver des infos pertinentes sur le sujets ...

n°531738
chrisbk
-
Posté le 05-10-2003 à 12:07:33  profilanswer
 

on se demande pkoi il le dit pas comme ca :o [:ddr555]

n°531741
Joel F
Real men use unique_ptr
Posté le 05-10-2003 à 12:08:29  profilanswer
 

chrisbk a écrit :

on se demande pkoi il le dit pas comme ca :o [:ddr555]


 
effectivement [:ddr555]

n°531746
ffluff
Challenge Everything
Posté le 05-10-2003 à 12:10:28  profilanswer
 

parce que pourquoi faire simple quand on peut faire compliqué...

n°531798
Taz
bisounours-codeur
Posté le 05-10-2003 à 13:15:03  profilanswer
 

il y a une différence entre connaître le chemin et arpenter le chemin.


Message édité par Taz le 05-10-2003 à 15:40:16
n°531812
iS@mi
Resistance is futile !
Posté le 05-10-2003 à 14:28:20  profilanswer
 

c qd même plus simple de travailler avec ce genre de méthode ?
 
 
RGBA = (65535,65535, 65535, 65535)
 
ou encore
 
 
RGBA = (1.0f,1.0f, 1.0f, 1.0f)

n°531813
chrisbk
-
Posté le 05-10-2003 à 14:29:29  profilanswer
 

iS@mi a écrit :

c qd même plus simple de travailler avec ce genre de méthode ?
 
 
RGBA = (65535,65535, 65535, 65535)
 
ou encore
 
 
RGBA = (1.0f,1.0f, 1.0f, 1.0f)


 
heuh ouais sauf que ta carte graphique elle va te regarder comme ca  : [:le kneu] si tu lui envoie des blagues pareilles

n°531814
iS@mi
Resistance is futile !
Posté le 05-10-2003 à 14:31:30  profilanswer
 

chrisbk a écrit :


 
heuh ouais sauf que ta carte graphique elle va te regarder comme ca  : [:le kneu] si tu lui envoie des blagues pareilles
 


 
unsigned long couleur = RGBA(255,255,255,255);  :D

n°531816
chrisbk
-
Posté le 05-10-2003 à 14:32:37  profilanswer
 

iS@mi a écrit :


 
unsigned long couleur = RGBA(255,255,255,255);  :D  


 
ah ben la je veux bien :o
mais pkoi tu nous causais en float et en unsigned short par composantn avant ? [:le kneu]

n°531819
Tetedeienc​h
Head Of God
Posté le 05-10-2003 à 14:36:24  profilanswer
 

a mon avis il pensait OpenGL/D3D :lol:
 
Je suis crevé de rire a cause de ce post :
 

Citation :

heuh ouais sauf que ta carte graphique elle va te regarder comme ca  : [:le kneu] si tu lui envoie des blagues pareilles


 
J'imagine la tete de la cg a la kneu :lol:


Message édité par Tetedeiench le 05-10-2003 à 14:36:52

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°531820
Tetedeienc​h
Head Of God
Posté le 05-10-2003 à 14:37:34  profilanswer
 

D'ailleurs, tous les drivers devraient implémenter un mode d'erreur "kneu" qui fait que la CG affiche un kneu des que le programmeur fait un grosse connerie :lol:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°532215
bjone
Insert booze to continue
Posté le 06-10-2003 à 02:23:05  profilanswer
 

chrisbk a écrit :


 
heuh ouais sauf que ta carte graphique elle va te regarder comme ca  : [:le kneu] si tu lui envoie des blagues pareilles
 


 
 [:ddt]

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] hexa, besoin explication

 

Sujets relatifs
Besoin de vôtre avis ( JSP + Applet inside )[DELPHI 5] j'ai besoin d'un info sur le composant Tchart ...
aide perl/Tk explication sur le placement SVP.Besoin d'avis sur un layout
precessus(fork) --->> explicationEXPLICATION
[MySQL] Besoin d'aide sur les types de VariablesBesoin de conseils pour WebSphere d'IBM
Besoin d'aide a propos d'un projetBesoin d'aide dans la création de mon site
Plus de sujets relatifs à : [c++] hexa, besoin explication


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR