//todo utiliser DrawBezier pour afficher des courbes au lieu de lignes droites private void Relier() { List <Figure> liste = _element.ListeElements(); for (int i = 0; i < _compteur; i++) { // si 2 éléments consécutifs sont bien des points if (_element.ListeFigures().ElementAt(i).Key.Contains(Point) && _element.ListeFigures().ElementAt(i + 1).Key.Contains(Point)) { _element.Dimensionne(liste[i].Position + 3); _element.Positionne(liste[i + 1].Position + 3); _element.AjouterLigne(Ligne + i, Color.Blue, 3); } } }
public void CreateElement(Dictionary <string, float> incomingData = null) { if (incomingData == null && _data == null) { return; // si aucune donnée ne peut être utilisée } Clear(); if (incomingData != null) // si on ne recycle pas les données existantes mais qu'on en prend des nouvelles { _data = incomingData; } int compteur = 0; Couple positionSourceLigneVerticale = new Couple(); Couple positionDestinationLigneVerticale = new Couple(); float rapport = (Width - 100) / PlusGrandeValeur() * 0.95f; foreach (KeyValuePair <string, float> item in _data) { // nom // hauteur 12.5 * 5 => 62 _element.Dimensionne(12.5f); _element.Positionne( 10, compteur * _element.GetDimension.Y * 5 ); _element.AjouterTexte("Label" + item.Key, item.Key, Color.Black); // barre // hauteur = 62 + 25 = 87 // hauteur finale = 87 + 20 = 107 _element.Positionne( 100, _element.GetPosition.Y + 25 ); _element.Dimensionne((int)(item.Value * rapport), 20); _element.AjouterRectangle("Rectangle" + item.Key, Theme.BackLight); // valeur _element.Dimensionne(12.5f); _element.Positionne( _element.GetPosition.X + 7, _element.GetPosition.Y - 1 ); _element.AjouterTexte("Valeur" + item.Key, ConvertitNombre(item.Value), Color.Black); if (compteur == 0) // si premier élément { _premiereFigure = _element.GetFigure("Label" + item.Key); positionSourceLigneVerticale = new Couple( _element.GetFigure("Rectangle" + item.Key).Position.X + _element.GetFigure("Rectangle" + item.Key).Dimension.X, _element.GetFigure("Rectangle" + item.Key).Position.Y ); } if (compteur == _data.Count - 1) // si dernier élément { _derniereFigure = _element.GetFigure("Label" + item.Key); positionDestinationLigneVerticale = new Couple( positionSourceLigneVerticale.X, _element.GetFigure("Rectangle" + item.Key).Position.Y + _element.GetFigure("Rectangle" + item.Key).Dimension.Y ); } compteur++; } _element.Positionne(positionSourceLigneVerticale); _element.Dimensionne(positionDestinationLigneVerticale); _element.AjouterLigne("LigneVerticale", Color.Black, 1); pictureBox1.Invalidate(); }