Changer le repère d'un Graphics

Le
Tr
Bonjour à tous,

j'espère que je vais être clair :-)
je dessine une courbe à l'aide de points, jusqu'ici c'est bon.
je souhaite utiliser comme repère de départ pour les coordonnées non
pas le pixel en haut à gauche mais le pixel en bas à gauche de ma zone
de dessin.

comment faire?

merci d'avance.

voici mon petit code:
Sub DessineCourbe()
'l'objet graphics est rattaché à un contrôle de type panel:
Dim g As Graphics = Panel_Courbe.CreateGraphics()
Dim i As Integer

'Tableau est un objet datagridview qui contient les points:
Dim points(Tableau.Rows.Count) As Point
For i = 0 To Tableau.Rows.Count - 1
points(i).X = CInt(Tableau.Rows(i).Cells(0).Value)
points(i).Y = CInt(Tableau.Rows(i).Cells(1).Value)
Next i


Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))

g.DrawCurve(pen, points)
pen.Dispose()
g.Dispose()
End Sub

--
Réfléchissons un peu: ça n'est pas donné à tout le monde de rire de
soi. (Caricatures)
tranquille.xav@free.fr
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alex C.
Le #17468151
On 7 oct, 13:41,
Bonjour à tous,

j'espère que je vais être clair :-)
je dessine une courbe à l'aide de points, jusqu'ici c'est bon.
je souhaite utiliser comme repère de départ pour les coordonnées no n
pas le pixel en haut à gauche mais le pixel en bas à gauche de ma zon e
de dessin.

comment faire?

merci d'avance.

voici mon petit code:
Sub DessineCourbe()
'l'objet graphics est rattaché à un contrôle de type panel:
        Dim g As Graphics = Panel_Courbe.CreateGraphics()
        Dim i As Integer

        'Tableau est un objet datagridview qui contient les point s:
        Dim points(Tableau.Rows.Count) As Point
        For i = 0 To Tableau.Rows.Count - 1
            points(i).X = CInt(Tableau.Rows(i).Cells(0).Val ue)
            points(i).Y = CInt(Tableau.Rows(i).Cells(1).Val ue)
        Next i

        Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))

        g.DrawCurve(pen, points)
        pen.Dispose()
        g.Dispose()
    End Sub

--
Réfléchissons un peu: ça n'est pas donné à tout le monde de rir e de
soi. (Caricatures...)




Salut,

Il suffit de dessiner vos points avec le point d'origine en haut à
gauche, puis de faire ce qu'on appelle une translation grâce à la
fonction MultiplyTransform.

Un petit exemple ici avec l'utilisation de cette fonction :
http://www.c2i.fr/code.aspx?IDCodeI9

@+
Tr
Le #17470321
*Ecrit* *par* *Alex C.*:
On 7 oct, 13:41,
Bonjour à tous,

j'espère que je vais être clair :-)
je dessine une courbe à l'aide de points, jusqu'ici c'est bon.
je souhaite utiliser comme repère de départ pour les coordonnées non
pas le pixel en haut à gauche mais le pixel en bas à gauche de ma
zone de dessin.

comment faire?

merci d'avance.

voici mon petit code:
Sub DessineCourbe()
'l'objet graphics est rattaché à un contrôle de type panel:
        Dim g As Graphics = Panel_Courbe.CreateGraphics()
        Dim i As Integer

        'Tableau est un objet datagridview qui contient les points:
        Dim points(Tableau.Rows.Count) As Point
        For i = 0 To Tableau.Rows.Count - 1
            points(i).X = CInt(Tableau.Rows(i).Cells(0).Value)
            points(i).Y = CInt(Tableau.Rows(i).Cells(1).Value)
        Next i

        Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))

        g.DrawCurve(pen, points)
        pen.Dispose()
        g.Dispose()
    End Sub

--
Réfléchissons un peu: ça n'est pas donné à tout le monde de rire de
soi. (Caricatures...)






Salut,



Il suffit de dessiner vos points avec le point d'origine en haut à
gauche, puis de faire ce qu'on appelle une translation grâce à la
fonction MultiplyTransform.



Un petit exemple ici avec l'utilisation de cette fonction :
http://www.c2i.fr/code.aspx?IDCodeI9



ok, merci pour ta réponse.
entre temps j'ai quand-même réussi grâce à ce code:
(par exemple, ici pour tracer mes deux axes)
AxeX et AxeY sont en fait les largeur et hauteur d'un controle panel.
Public Sub DessineAxes()

'reset
g.ResetTransform()

'décale en bas
g.TranslateTransform(20, (AxeY - 20), Drawing2D.MatrixOrder.Append)

'réflexion / à l'axe des x:
g.ScaleTransform(1, -1)

'dessine:
g.DrawLine(p, 0, 0, 0, AxeY)
g.DrawLine(p, 0, 0, AxeX, 0)

End Sub

--
Va au bout. (Etat d'esprit)

Publicité
Poster une réponse
Anonyme