begin process at 2012 05 28 14:02:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Besoin d' aide Dessin de SPECTRUM


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besoin d' aide Dessin de SPECTRUM

jeudi 28 juillet 2005 à 15:24:27 | Besoin d' aide Dessin de SPECTRUM

satellite34

yop, je fais un player mp3 http://www.cppfrance.com/code.aspx?ID=32901  , avec wxWIDGETS et FMOD

et vu que je programme tout seul dans mon coin et qu' il n' ya aucune info sur les spectres, je voudrai savoir si qqun peut me filer un coup de main a dessinner un beau spectrum à la place de la ligne verte minable de base -): 

le code à ameliorer :

void Mp3PlayerFrm::DessineSpectre(wxDC& dc)
{  
    //dessin du spectre.....
    spectrumData = FSOUND_DSP_GetSpectrum();    //recupere les 512 cannaux separés...
   
    dc.BeginDrawing();
    wxColour MaCouleurVerte(0,255,0);
    wxPen MonCrayonVert(MaCouleurVerte,8,wxSWISS);
    dc.SetPen(MonCrayonVert);
    for ( int i = 0 ; i < 400 ; i++ )
    { 
       spectrumValue = int (1000 * (spectrumData[ i ] + spectrumData[ i +1 ] + spectrumData[ i+2 ] + spectrumData[ i+3 ]  + spectrumData[ i+4 ] )) / 5;
      
       if (spectrumValue >= 200)   //si spectrum value depasse de spectrWnd..
       spectrumValue = 199;        //recadre
             
       dc.DrawPoint( i , 198-spectrumValue );    //dessine
    }
    dc.EndDrawing();
}

allé défoulez vous bien & thx all!!!!!!!!!
vendredi 29 juillet 2005 à 16:08:13 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

ouououououou allééééééééé!!!!!!!!!!
vendredi 29 juillet 2005 à 20:20:49 | Re : Besoin d' aide Dessin de SPECTRUM

SnOOpss

Le degradé que je t avais mit te plait pas ???

Il fait une barre mais c'est pas dur de le chnager pour kil ne fasse qu'une ligne !!


dimanche 31 juillet 2005 à 11:21:27 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

ben en fait je n' y arrive pas a l'adapter a wx
et  je ne comprends pas bien le systus ...

biensur que ca me plaierai ton dégradé d'ailleurs c'est ce que j'essaye de faire depuis une semaine mais che bloke.
(j' ai aussi un souci pour récupérer les tags mais ca c une otre histoire)

si ca t'dit de m' donner un coup de main en live
satellitesound@msn.com
thx ++
dimanche 31 juillet 2005 à 11:31:15 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

ô sinon si ca te dérange pas trop ce serai cool de m' expliquer pas a pas les actions qu' il faut faire , meme sans code , juste pour connaitre exactement la marche a suivre apré je me démmerderai a trouver comment faire avec wx
dimanche 31 juillet 2005 à 19:16:39 | Re : Besoin d' aide Dessin de SPECTRUM

SnOOpss

alors pour faire le degradé moi ma methode perso (  pour un degradé d'une couleur vers noir par exemple) c'est

COLORREF ccouleurprog = ...... ;( ta valeur de degradé codé en RGB)

        int fRed = (int)GetRValue(ccouleurprog);
        int fBlue = (int)GetBValue(ccouleurprog);
        int fGreen = (int)GetGValue(ccouleurprog);

maintenant que l on a les composante vert rouge et bleu je fait une boucle pour toi c'est une ligne donc

for ( int i = 0 ; i < 400 ; i++ )
    { 
       spectrumValue = int (1000 * (spectrumData[ i ] + spectrumData[ i +1 ] + spectrumData[ i+2 ] + spectrumData[ i+3 ]  + spectrumData[ i+4 ] )) / 5;
      
       if (spectrumValue >= 200)   //si spectrum value depasse de spectrWnd..
       spectrumValue = 199;        //recadre

          int deca = 200; // taille max de la barre ou ligne dans ton cas
     for ( int j = 199 ; j < spectrumValue ; j-- ) {

          if (fRed)   fRed -= 128 / deca;
          if (fBlue)  fBlue -= 128 / deca;
          if (fGreen) fGreen -= 128 / deca;

          dessin d'un point coordonné (i,j) et de couleur RGB(fRed, fGreen , fBlue)
         
       }

    

    }
Mais ca va demander beaucoup de ressources systemes, il te faut vraiment te refaire une procedure pour afficher des points.

dimanche 31 juillet 2005 à 20:41:22 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

c'est bien symphatique de ta part!!
merci beaucoup, je vais regarder ca ce soir et je te tiens au courant

thx
++
dimanche 31 juillet 2005 à 22:57:13 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

donc, maintenant j' ai :

void Mp3PlayerFrm::DessineSpectre(wxDC& dc)
{  
    //dessin du spectre.....dédié a Snoops de cppcs
    const float *spectrumData = FSOUND_DSP_GetSpectrum();    //recupere les 512 cannaux separés...
    int spectrumValue;
   
    COLORREF m_degrade =(10,250,10);

    int fRed = (int)GetRValue(m_degrade);
    int fBlue = (int)GetBValue(m_degrade);
    int fGreen = (int)GetGValue(m_degrade);

   
    for ( int i = 0 ; i < 400 ; i++ )            //400 est le largeur de la fenetre:
                                                 //le spectrum retourne 512 floats
                                                 //mais pour garder tout le spectre dans la fenetre je defini a 400
    { 
       spectrumValue = int (1000 * (spectrumData[ i ] + spectrumData[ i +1 ] + spectrumData[ i+2 ] + spectrumData[ i+3 ]  + spectrumData[ i+4 ] )) / 5;
      
       if (spectrumValue >= 200)   //si spectrum value depasse de spectrWnd..
       spectrumValue = 199;        //recadre
      
       int deca = 200; // taille max de la ligne
       for ( int j = 199 ; j < spectrumValue ; j-- )
       {

          if (fRed)   fRed -= 128 / deca;
          if (fBlue)  fBlue -= 128 / deca;
          if (fGreen) fGreen -= 128 / deca;

          wxColour MaCouleur(fRed, fGreen , fBlue);
          wxPen MonCrayon(MaCouleur,8,wxSWISS);              //crée un "crayon",
          dc.SetPen(MonCrayon);                              //ce crayon est accroché au device context grace a SetPen
   
          dc.DrawPoint( i , j );                             //dessine
      
       }//ferme la tite boucle   
      
    }//ferme la gde boucle
   
}//ferme la fonction


et avec ca j' ai une erreur de compilo =
46 C:\Documents and Settings\Administrateur\Bureau\PlayerMp3\spectrum.cpp [Warning] left-hand operand of comma has no effect

46 C:\Documents and Settings\Administrateur\Bureau\PlayerMp3\spectrum.cpp [Warning] right-hand operand of comma has no effect

je comprends pas pourquoi.
Donc, ca compile avec ces erreurs et ca n'affiche rien.
Une soluce????????

dimanche 31 juillet 2005 à 22:59:35 | Re : Besoin d' aide Dessin de SPECTRUM

satellite34

l'erreur se situe sur COLORREF m_degrade =(10,250,10);
plus précisément sur (10,250,10);
++
lundi 1 août 2005 à 19:05:35 | Re : Besoin d' aide Dessin de SPECTRUM

SnOOpss

Ben en fait en win32
pour avoir du rouge = (255,0,0)
m_degrade = RGB(255,0,0) = 255; (en decimal) = FF0000 en hexa !!

du bleu
m_degrade = RGB(0,0,255) = 16711680; (en decimal) = 0000FF en hexa

en fait m_degrade est un long pas un tableau !!!
c'est du codage sur plusieurs bit de poid differents ( si ca ce dit comme ca, je suis pas un pro du vocabulaire c++ )


1 2

Cette discussion est classée dans : dessin, dc, spectrumdata, spectrum, spectrumvalue


Répondre à ce message

Sujets en rapport avec ce message

dessin et modification de courbe sous MFC [ par berrouba ] je suis un débutan en VC++j'ai réaliser un programme  de dessin de courbes Bezier,je peut les déplacer par la sourisMais je veur ajouter l'option de m Affichage doimension reelle [ par DominiquedeLapasse ] Bonjour, Je veux faire un affichage de dessin ayant pour unites les millimetres, or suivant le paramétrage de la resolution de mon ecran, les dimensi [BAR]Besoin d'aide pour créer un programme pour un logiciel de dessin 2D. [ par Ungnun ] Bonjour, Je me permet de poster sur ce forum car j'ai besoin d'aide pour créer un programme. Je fais en ce moment un stage dans une entreprise qui variable global [ par chiro2000 ] Bonjour voici mon probleme je dispose de trois fichier dessin.cpp param.cpp global.h j ai une variable global:double temp_x, qui instanciée dans globa fentre graphique [ par jlg75 ] Bonjour, Je fais du dessin sur la zone client de ma fenetre principale, occupée partiellement par des toolbars en partie haute de la zc. Je souhaite l Effacer mon dessin [ par AzevedoSt27 ] Bonjour, Grace un hook souris je dessine sur n'importe ou sur l'écran ce que j'aimerais cera que des que je termine de dessiner je voudrais que ceci dessiner dans une boite de dialog [ par olfa7183 ] salut,je veux creer un compteur qui compte les monnaie inserees.tout d'abord je veux le dessiner puis le programmer.pour le dessin j'ai utilisé le cod resolution equation convection-diffusion en elements finis...help [ par sam90 ] Bonjour mes amis,j'ai un problème pour en éléments finis.Je veux résoudre cette équation : (dc/dt)+(d(A(c)c)/dz)-(d(B(c).(dc/dz)/dz)=0 Par la méthode Visual studio "dessin" très très énervant! [ par gnairod ] Bonjour,Je suis sous Visual studio et par une combinaison de touches j'ai activé sans le vouloir (mes doigts ont dérapés) des "dessins" qui apparaisse


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,151 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales