Quelqu'un ma�trise-t-il MSCHART en C++ ?
Existe-t-il une aide quelconque sur ce composant ?
Comment faire pour modifier l'�paisseur des courbes ?
Version imprimable
Quelqu'un ma�trise-t-il MSCHART en C++ ?
Existe-t-il une aide quelconque sur ce composant ?
Comment faire pour modifier l'�paisseur des courbes ?
Y vraiment personne qui touche un peu � MSCHART
Y'a dja eu des sujets la dessus.
T'as dja regard� (clique sur rechercher puis retre *MSCHART*) ?
Ouaipp, les seules exemples que j'ai trouv� sur le net sont celui de codeguru ( tr�s bon exemple ), et des exemples de code en VB que je n'arrive pas � retranscrire en VC++. J'arrive � faire des trucs de base genre mettre la l�gende ou non, rajouter un titre ou non. Mais je n'arrive pas � faire des chose plus �volu�es comme par exemple changer l'�paisseur des courbes et certaines fonctions membre de la classe CMSChart me sont encore tr�s obsures. En fait la classe CMSChart fait appel � d'autre classes pour les op�rations complexes mais je n'arrive pas � utiliser les fonctions de ces classes avec l'objet m_Chart que j'ai cr�er.
�a m'�tonnerais mais c'eat peut-�tre un probl�me d'include...
(genre : il faut inclure les classes bizarres utilis�es par la classe CMSChart...)
Ben en fait je n'est aucun pb de compilation ( 0 erreurs, 0 warning ) donc je n'ai � priori pas oublier d'include, mais je vois pas vraiment quel lien il y a entre le composant m_chart et les autres.
Si ce que je dis peux te para�tre floue tu peux essayer de faire un nouveau proj MFC ou tu ajoute le composant MSChart, il va alors te demander si tu ajouter une flopp�e de classes qui vont avec. Ces ces classes ci qui permettent, � mon avis de changer pas mal de choses aux graphes, mais je ne conna�t pas le lien qu'elles ont avec la classe MSChart...
:graphe: J'crois que j'ai trouv� une combine ( grosse bidouille ) pour faire mon graphe comme je l'entends. Merci quand m�me pour ton aide Guejo :king:
Salut,
D'abord,tu traces une courbe
Pour les variables non comprises,regarde le code de codeguru,je m'en suis inspir�Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 index[0] ->représente t(paramètre) index[1] = 0 ->représente l'axe des x index[1] = 1 ->représente l'axe des y ex: Pour tracer une courbe: //Permet de laisser une liberté sur les echelles CVcPlot plot = m_Charttlc.GetPlot(); plot.SetUniformAxis(FALSE); double max = sauv[nbtracevraiment-1].time; //Place le minimum et le maximum sur l'axe des x m_Xmin = 0; m_Xmax = max; UpdateData(TRUE); m_Max = float(m_Xmax); m_Min = float(m_Xmin); UpdateData(FALSE); VARIANT var; var.vt = VT_R8; CVcAxis axis = plot.GetAxis(0,var); CVcValueScale valuescale = axis.GetValueScale(); valuescale.SetMaximum(m_Xmax); valuescale.SetMinimum(m_Xmin); int a; //Commence le remplissage du tableau DWORD numElement[] = {nbtracevraiment,2}; saRet.Create(VT_R8,2,numElement); for (index[0]=0;index[0]<nbtracevraiment;index[0]++) { a = index[0]; double j =sauv[a].time; index[1] = 0; //Pour les x saRet.PutElement(index,&j); index[1] = 1; //Pour les y double k =sauv[a].tlc; saRet.PutElement(index,&k); } UpdateData(TRUE); m_Charttlc.SetColumnLabel("TLC"); UpdateData(FALSE); m_Charttlc.SetChartData(saRet.Detach()); m_Charttlc.Refresh();
En esperant que t'a compris
koko22
Pour pr�cision,je trace TLC=f(time)
Merci, ton exemple va m'�tre tr�s utile . :D
Si j'ai bien tout compris tu fais un graphe en fonction du temps. Ta variable max je vois pas trop � quoi elle correspond ( au max de quoi ) et surtout time c'est quoi comme variable ? Je dois ausi faire un graphe en fonction du temps et �a m'interesserai de savoir comment tu t'en est sorti pour le faire ; tu traces un points toutes les n secondes ? Et est ce qu'il existe un moyen de garder la distance entre deux points successifs constante. En effet comme tu as surement du t'en apercevoir, plus le nombre de points augmente plus la distance entre les points se resserent... Merci d'avance :wink:
La valeur max correspond � la valeur maximale trac�e.
J'ai une structure TLC compos� de 2 champs:
* float time(variable x)
* float tlc(variable y)
Pour ce qui est du tempo des points, je sais pas j'ai pas eu le probl�me, j'ai des points toutes les 200ms
Bonjour, je pense que cette portion de code qui t'as g�n�:
Le 1er param�tre de GetAxis correspond �Code:
1
2
3
4
5
6 CVcAxis axis = plot.GetAxis(0,var); CVcValueScale valuescale = axis.GetValueScale(); valuescale.SetMaximum(m_Xmax); valuescale.SetMinimum(m_Xmin);
axe des x ->0
axe des y ->1
Donc comme j'ai mis 0,le max et le min sont pour l'axe des x
En effet c'est cette portion de code qui m'as d�rang�. En fait si je change la valeur du max et du min, �a n'influe pas sur le graphe.
Deuxi�me question :
Pourquoi il m'affiche deux courbes : y en a une qui est bonne y = x+5 mais y en a une deuxi�me y = x ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for (index[0]=0;index[0]<nb_points;index[0]++) { a = index[0]; index[1] = 0; //Pour les x double j = index[0];//sauv[a].time; saRet.PutElement(index,&j); index[1] = 1; //Pour les y double k = index[0]+5; saRet.PutElement(index,&k); }
Troisi�me question ( je sais j'abuse ) :
En ce qui concerne le temps : tu as une tempo de 200 ms. J'imagine que tu redessinnes alors ton graphe pour actualiser les donn�es. Mais au bout d'une demi-heure ton graphe va ressembler � un gros pat� de couleur parce que la taille du graphe est fixe et le nombre de points sur ton graphe augmente. Il n'y a pas de m�thodes dans MSChart qui te redimmensionne la taille du graphe en fonction du nombre de points ?
PS : merci pour toute l'aide que tu m'as d�j� fourni :bravo: j'ai d�j� bien avanc� :D
Bonjour,
il me semble que la r�ponse � ta 3eme question est
(L'axe est redim�nsionn� en Y selon le nombre de pts que t'a)Code:
1
2
3 CVcPlot plot = m_Charttlc.GetPlot(); plot.SetUniformAxis(FALSE);
Pour ce qui est de l'affichage de 2 courbes,c'est pas normal.Moi il ne me le fait pas.
Pour la 1er question, si tu veux changer XMin et Xmax met GetAxis(0,var),si tu veux changer YMin et YMax GetAxis(1,var)
Voila en esperant t'avoir aid�
koko22
Merci pour tout koko22, j'crois que je vais r�ussir � m'en sortir gr�ce � ton aide.
:applo: :chin:
Y a juste une question qui me turlupine : comment tu sais ce que fais chaque fonction des composants MSChart : t'as une aide ou tu le fait en essayant ?
Bonjour,
j'ai essay� et je suis arriv� � comprendre une partie de cette ocx.Par contre,je n'arrive pas � imprimer le graphique
koko22
En Visual Basic c'est :
En VC++, le code doit probablement �tre totalement diff�rent, mais je pense que le principe est le m�me : on ne peu pas imprimer directement le graphe, il faut passer par un interm�diaire ( le clipboard par ex ).Code:
1
2
3
4 MSChart1.EditCopy Printer.PaintPicture ClipBoard.GetData(), 0, 0 Printer.EndDoc
Sinon est ce que tu arrive � l'enregistrer sous forme d'image ? Ca m'interesserai de savoir si on peut le faire. En fait j'suis pas encore sur d'utiliser cette ocx. D'un c�t� elle est pas mal faite parce que l'on obtient rapidement un graphique, mais d'un autre c�t� si on ne peut ni le sauvegard� sous forme d'image, ni l'imprimer il ne pr�sente aucun int�r�t pour moi.
Bonjour,
je sais pas ce que tu utilises comme document mais j'utilise un doc/View SDI programme. Donc j'arrive � avoir l'appercu avant impression de mon graphe mais d�s que je l'imprime PAGE BLANCHE.Malgr� l'aide d'un personne sur le forum qui �tait super, je n'y suis pas parvenu...
En v�rit�,j'ai l'image de ce qu'il y'a sur la vue.
koko22
Ben en fait j'utilise aussi un SDI Cview mais j'ai m�me pas l'apercu. T'as fait un truc sp�cial pour l'avoir dans l'apercu ? :coucou: