• Viernes 8 de Noviembre de 2024, 04:58

Autor Tema:  gdi+  (Leído 1388 veces)

donnett

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
gdi+
« en: Lunes 20 de Abril de 2009, 10:11 »
0
Saludos a todos,
estoy realizando un dibujo en vb.net 2008. Me acabo de encontrar con un problema q no me abia pasado nunca. adjunto el resultado del grafico q intento mostrar, en la imagen. Como podeis observar se corta el dibujo. Sin haber tocado nada ni haber cambiado nada en el codigo, el dibujo a dejado de salirme completo y a pasado a salirme asi. se supone q tendria q salirme igual por la derecha q por la izkierda. os paso el trozo de codigo donde dibujo la imagen. si alguien pudiese decirme porq puede ocurrir esto seria de gran ayuda.
Me funcionaba y me salia el dibujo y de repente ha dejado de hacerlo.

    Dim g As Graphics = Me.CreateGraphics  ' declaro q la zona del grafico es el form
    Dim g2 As Graphics = Me.CreateGraphics

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        g2.Clear(Me.BackColor)      'voy a acer mover la flecha sobre el dibujo cada vez q toke el boton segun lo q ponga en el combobox
        g.Clear(Me.BackColor)       'asi q limpio el grafico
        Dim myPen As New Pen(Color.Black, 1)        'declaro mi pen con forma de flecha
        myPen.StartCap = LineCap.SquareAnchor
        myPen.EndCap = LineCap.ArrowAnchor

        Dim trayecto As New GraphicsPath            'declaro los distintos trayectos
        Dim trayecto2 As New GraphicsPath
        Dim trayecto3 As New GraphicsPath
        Dim trayecto4 As New GraphicsPath
        Dim trama As LinearGradientBrush = New LinearGradientBrush(New Rectangle(100, 10, 200, 95), Color.Green, Color.Red, LinearGradientMode.Vertical)

        ' es la brocha con la que voy a pintar la region que keda entre los dos semielipses


        trayecto.AddArc(New Rectangle(100, 10, 200, 170), 180, 180)
        trayecto2.AddArc(New Rectangle(125, 30, 150, 130), 180, 180)
        trayecto3.AddLine(100, 95, 125, 95)
        trayecto4.AddLine(275, 95, 300, 95)

        Dim RG As New Region(trayecto)
        RG.Exclude(trayecto2)
        g.FillRegion(trama, RG)


        If ComboBox1.Text = "900" Then

            g2.DrawLine(myPen, 200, 95, 134, 64)

        ElseIf ComboBox1.Text = "1000" Then
     
            g2.DrawLine(myPen, 200, 95, 200, 30)

        ElseIf ComboBox1.Text = "1100" Then

            g2.DrawLine(myPen, 200, 95, 266, 64)

        End If

    End Sub

Gracias de antemano.

Un saludo!!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.