Dibujar lineas de distintos tipos y poder moverlas
Publicado por Rafael (3 intervenciones) el 10/11/2010 13:45:00
Hola a todos. Tengo que hacer una pequeña aplicación en la que pueda hacer ciertos dibujos con ciertas formas. Buscando en internet encontré la forma de usar la clase Graphic para poder dibujar, pero lo que encontré es muy básico. Consiste en crear un objeto Pen con el color y grosor de la lÃnea. Luego se crea un objeto Graphic en donde se especifica el Pen que creamos y las coordeneadas de inicio y fin de la lÃnia. Para dibujar una lÃnea usamos el método DrawLine de Graphic.
==============================================================================
Dim PenPoint As Pen
Dim initialPos As Point
Dim g As Graphics
Dim clickNumber = 0
Private Sub PictureBox1
_MouseDown(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles
PictureBox1.MouseDown
If clickNumber = 0 Then
initialPos = e.Location
clickNumber += 1
ElseIf clickNumber = 1 Then
g.DrawLine(PenPoint, initialPos , e.Location)
clickNumber = 0
End If
End Sub
==============================================================================
Con esto solo hago una lÃnea haciendo click en un lado del panel y click en otro.
Pero yo preciso hacer mas cosas que éstas. Empezando que necesito hacer una lÃnea con una flecha en un extremo. Se que esto lo puedo hacer seteando la propiedad EndCap del objeto Pen (o StartCap si quisiera la flecha al iniciar la linea), pero el problema es que la flecha que me dibuja es muy pequeña, prácticamente no se distingue con un grosor de linea de 1 o 2 que es lo que preciso. Otra cosa es poder trasladar la linea dibujada de un lado a otro haciando un click para seleccionar la linea y luego hacer otro clik y mantenerlo presionado mientras trasladamos la linea con el mouse hacia donde querramos además de poder alargar o reducir su tamaño. Otro punto es poder darle distintas formas a la lÃnia. Por ejemplo necesito poder dibujar lineas punteadas, lÃnias dobles, lines con ondulaciones, etc.
Bueno, dejo planteada la duda a la espera de alguien que pueda darme una mano. Desde ya muchas gracias.
==============================================================================
Dim PenPoint As Pen
Dim initialPos As Point
Dim g As Graphics
Dim clickNumber = 0
Private Sub PictureBox1
_MouseDown(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles
PictureBox1.MouseDown
If clickNumber = 0 Then
initialPos = e.Location
clickNumber += 1
ElseIf clickNumber = 1 Then
g.DrawLine(PenPoint, initialPos , e.Location)
clickNumber = 0
End If
End Sub
==============================================================================
Con esto solo hago una lÃnea haciendo click en un lado del panel y click en otro.
Pero yo preciso hacer mas cosas que éstas. Empezando que necesito hacer una lÃnea con una flecha en un extremo. Se que esto lo puedo hacer seteando la propiedad EndCap del objeto Pen (o StartCap si quisiera la flecha al iniciar la linea), pero el problema es que la flecha que me dibuja es muy pequeña, prácticamente no se distingue con un grosor de linea de 1 o 2 que es lo que preciso. Otra cosa es poder trasladar la linea dibujada de un lado a otro haciando un click para seleccionar la linea y luego hacer otro clik y mantenerlo presionado mientras trasladamos la linea con el mouse hacia donde querramos además de poder alargar o reducir su tamaño. Otro punto es poder darle distintas formas a la lÃnia. Por ejemplo necesito poder dibujar lineas punteadas, lÃnias dobles, lines con ondulaciones, etc.
Bueno, dejo planteada la duda a la espera de alguien que pueda darme una mano. Desde ya muchas gracias.
Valora esta pregunta
0