Usercontrol graphique c#

Description

C'est un code dont l'inspiration vient de là : http://www.vbfrance.com/codes/USER-CONTROL-GRAPHIQUE-VB-2005_42764.aspx
La Base était là, mais on ne pouvait tracer que des courbes avec des entiers. Je cherchais de quoi faire un graphique avec des nombres réels.

Il n'y a plus que 3 méthodes par rapport au code de référence:

.addcourbe : pour ajouter une série (a utiliser en premier sinon le uc creera 3 courbes bidon)
.deletecourbe : pour supprimer UNE série (suivant sont nom)
.zapcourbes : pour supprimer TOUTES les séries

Il y a un ensemble de propriétés qui permettent d'afficher différents chose comme le titre du graphique, le titre de chaque axe...
Il y a également 2 modèles de couleurs : XLLike et Base

si le Zoom est activé un clique dans la zone graphique permet de zoomer in (clic gauche) ou de zoomer out (clic droit).
Il y a la possibilité en cliquant sur les titres ou les graduations de les enlever ou de les remettre
Le passage de la souris au dessus du graphe affiche les coordonnées de la souris en échelle du graphique

Pour l'instant les courbes en barres ne peuvent pas être mélangé aux autres courbes. Je cherche une solution... Aide bienvenue

Source / Exemple :


void Button1Click(object sender, System.EventArgs e)
		{
			ucG.ZapCourbes();
			ucG.RafraichiLive=false;
			tmpx = new float[10+1];
			tmpy = new float[10+1];
			for (int i = 0; i<=10;i++)
			{
				tmpy[i]=(float)Math.Cos(i/Math.PI);
				tmpx[i]=i;
			}
			ucG.TitreGraphique="EXEMPLE DE COURBES";
			ucG.LegendeVisible=true;
			ucG.PointVisible=true;
			ucG.ZoomActif=true;
			ucG.TitreAxeX="ceci est le titre de l'axe X";
			ucG.TitreGrapheVisible=false;
			ucG.TitreAxeY="ceci est le titre de l'axe Y";
			ucG.TitreAxeY2="ceci est le titre de l'axe Y2";
			ucG.AddCourbe("i, cos(i/pi)",UcBib.UcGraphXY.NuméroAxe.Y,UcBib.UcGraphXY.CourbeType.Curseur,tmpy,tmpx,UcBib.UcGraphXY.MoyenneCourbe.Oui);
			ucG.AddCourbe("cos(i/pi), i",UcBib.UcGraphXY.NuméroAxe.Y2,UcBib.UcGraphXY.CourbeType.XY,tmpx,tmpy,UcBib.UcGraphXY.MoyenneCourbe.Non);
			for (int i=0 ; i<ucG.Moyenne.GetUpperBound(0);i++)
			{
				if (this.comboBox1.Items.Count==ucG.Moyenne.GetUpperBound(0))
				{
					this.comboBox1.Items.RemoveAt(i);}
					this.comboBox1.Items.Insert(i,ucG.Moyenne[i]);
			}
			ucG.RafraichiLive=true;
			
		}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.