Bonjour,
en regardant le poste de Karin.code :
http://codes-sources.commentcamarche.net/forum/affich-10069404-vb-net-supprimer-plusieurs-lineshape#top
j'ai eu l'envie d'améliorer l'un de mes logiciel de travail
ce logiciel me permet de dessiner un diagramme des moments en utilisant le contrôle chart
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
With Me.Chart1.Series("Series1").Points
.AddXY(2, 0)
.AddXY(2, -500)
End With
With Me.Chart1.Series("Series1").Points
.AddXY(2, 0)
.AddXY(18, 0)
End With
With Me.Chart1.Series("Series5").Points
.AddXY(2, -500)
.AddXY(4, 200)
.AddXY(6, -400)
End With
With Me.Chart1.Series("Series2").Points
.AddXY(6, -400)
.AddXY(8, 150)
.AddXY(10, -550)
End With
With Me.Chart1.Series("Series3").Points
.AddXY(10, -550)
.AddXY(12, 100)
.AddXY(14, -300)
End With
With Me.Chart1.Series("Series4").Points
.AddXY(14, -300)
.AddXY(16, 50)
.AddXY(18, -550)
End With
With Me.Chart1.Series("Series6").Points
.AddXY(18, 0)
.AddXY(18, -550)
End With
With Me.Chart1
.ChartAreas(0).AxisY.IsReversed = True
'Pour masquer les étiquettes de l'axe X
.ChartAreas(0).AxisX.LabelStyle.Enabled = False
'Pour masquer les étiquettes de l'axe Y
.ChartAreas(0).AxisY.LabelStyle.Enabled = False
'Pour masquer les quadrillages dans le sens X
.ChartAreas(0).AxisX.MajorGrid.Enabled = False
'Pour masquer les quadrillages dans le sens Y
.ChartAreas(0).AxisY.MajorGrid.Enabled = False
'Pour masquer les graduations dans le sens X
.ChartAreas(0).AxisX.MajorTickMark.Enabled = False
'Pour masquer les graduations dans le sens Y
.ChartAreas(0).AxisY.MajorTickMark.Enabled = False
'Pour masquer l'axe X
.ChartAreas(0).AxisY.Crossing = 0
.ChartAreas(0).AxisX.IsMarksNextToAxis = False
.ChartAreas(0).AxisX.LineWidth = 0
'Pour masquer l'axe Y
.ChartAreas(0).AxisY.LineWidth = 0
'pour maquer la légend
.Legends(0).Enabled = False
'Pour donner une épaisseur de 2 pts pour le graphe
.Series("Series1").BorderWidth = 1
.Series("Series2").BorderWidth = 2
.Series("Series3").BorderWidth = 2
.Series("Series4").BorderWidth = 2
.Series("Series5").BorderWidth = 2
.Series("Series6").BorderWidth = 1
.Series("Series0").BorderWidth = 1
'Redimensionner le graphe
'Pour donner au graphe une couleur noir
.Series("Series1").Color = Color.Black
.Series("Series2").Color = Color.Black
.Series("Series3").Color = Color.Black
.Series("Series4").Color = Color.Black
.Series("Series5").Color = Color.Black
.Series("Series6").Color = Color.Black
.Series("Series0").Color = Color.Black
End With
End Sub
je voulais dessiner se qu'on appel un appuis double dans graphe
j'ai créé le code suivant
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim g As Graphics
g = Chart1.CreateGraphics
X = 40
Y = 50
' Triangle
Dim blackPen As New Pen(Color.Black, 1)
Dim pointA1 As New Point(X, Y)
Dim pointA2 As New Point(X - 20, Y + 25)
Dim pointA3 As New Point(X + 20, Y + 25)
Dim pointA4 As New Point(X, Y)
Dim curvePoints1 As Point() = {pointA1, pointA2, pointA3, pointA4}
g.DrawPolygon(blackPen, curvePoints1)
' Ligne
Dim pointB1 As New Point(X - 30, Y + 25)
Dim pointB2 As New Point(X + 30, Y + 25)
Dim curvePoints2 As Point() = {pointB1, pointB2}
g.DrawPolygon(blackPen, curvePoints2)
' Cercle
g.DrawArc(Pens.Blue, X - 25, Y + 25, 10, 10, 300, 360)
g.DrawArc(Pens.Blue, X + 15, Y + 25, 10, 10, 300, 360)
' Ligne
Dim pointC1 As New Point(X - 30, Y + 35)
Dim pointC2 As New Point(X + 30, Y + 35)
Dim curvePoints3 As Point() = {pointC1, pointC2}
g.DrawPolygon(blackPen, curvePoints3)
End Sub
mais le problème et que je veux qu'il soit dessiner au point 0,0 de l'axe X,Y (au début du Diagramme)
alors ma question est la suivante
comme je peux récupérer la localisation du point X,Y non par rapport à l'axe X,Y mais par rapport au chart
je ne peux pas donner une localisation approximative car la position de l'axe X change par rapport aux point du diagramme
je ne c'est pas si j'ai bien expliquer
Merci d'avance
1000 Merci cs_Le Pivert pour ton aide