Visual Basic - líneas y puntos en vb

Life is soft - evento anual de software empresarial
 
Vista:

líneas y puntos en vb

Publicado por guillermo (3 intervenciones) el 03/10/2006 23:15:24
necesito realizar un programa que dibuje líneas y puntos en un picturebox a
través de un conjunto de coordenadas.cómo puedo hacer esto?

gracias de antemano por leer mi interrogante.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Usando los Metodos .Line y .Circle ...

Publicado por SemperFiMXL (25 intervenciones) el 04/10/2006 01:19:14
Debes usar el metodo .Line para trazar lineas, ya sea en el PictureBox, en el objeto Printer, en una Form, etc ...

Aqui te pongo codigo de ejemplo para trazar lineas, circulos, cuadros y elipses en un picturebox, usando el .MouseDown, .MouseMove y .MouseUp del PictureBox ...

En una Forma, pon un PictureBox (Picture1), 6 CommandButtons (command1 al command6) y pega el codigo que te pongo ...

''''''''''''''''''''''''''''''''
Dim nX_Ini As Single, nY_Ini As Single
Dim nX_Fin As Single, nY_Fin As Single
Dim nRadio As Single

Dim nDrawMode As Integer
Dim nDrawWidth As Integer

Dim bTrazarLinea As Boolean
Dim bTrazarCuadro As Boolean
Dim bTrazarCirculo As Boolean
Dim bTrazarElipseH As Boolean
Dim bTrazarElipseV As Boolean

Dim bDibujando As Boolean

Private Sub Command1_Click()
Call Trazar_Nada
bTrazarLinea = True
End Sub

Private Sub Command2_Click()
Call Trazar_Nada
bTrazarCuadro = True
End Sub

Private Sub Command3_Click()
Call Trazar_Nada
bTrazarCirculo = True
End Sub

Private Sub Command4_Click()
Call Trazar_Nada
bTrazarElipseH = True
End Sub

Private Sub Command5_Click()
Call Trazar_Nada
bTrazarElipseV = True
End Sub

Private Sub Trazar_Nada()
bTrazarLinea = False
bTrazarCuadro = False
bTrazarCirculo = False
bTrazarElipseH = False
bTrazarElipseV = False
End Sub

Private Sub Command6_Click()
Me.Picture1 = LoadPicture()
End Sub

Private Sub Form_Load()
Me.Command1.Caption = "Trazar Lineas"
Me.Command2.Caption = "Trazar Cuadros"
Me.Command3.Caption = "Trazar Circulos"
Me.Command4.Caption = "Elipse Horizont"
Me.Command5.Caption = "Elipse Vertical"
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
nX_Ini = X
nY_Ini = Y
nX_Fin = X
nY_Fin = Y
nRadio = nX_Fin - nX_Ini

nDrawMode = Me.Picture1.DrawMode
nDrawWidth = Me.Picture1.DrawWidth
Me.Picture1.DrawMode = vbInvert
Me.Picture1.DrawWidth = 2 ' <- opcional !!!

bDibujando = True
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If bDibujando Then
If bTrazarLinea Then
Me.Picture1.Line (nX_Ini, nY_Ini)-(nX_Fin, nY_Fin)
ElseIf bTrazarCuadro Then
Me.Picture1.Line (nX_Ini, nY_Ini)-(nX_Fin, nY_Fin), , B
ElseIf bTrazarCirculo Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio

ElseIf bTrazarElipseH Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio, , , , 0.5

ElseIf bTrazarElipseV Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio, , , , 1.5

End If

nX_Fin = X
nY_Fin = Y

If bTrazarLinea Then
Me.Picture1.Line (nX_Ini, nY_Ini)-(nX_Fin, nY_Fin)
ElseIf bTrazarCuadro Then
Me.Picture1.Line (nX_Ini, nY_Ini)-(nX_Fin, nY_Fin), , B
Else
If nX_Fin >= nX_Ini Then
nRadio = nX_Fin - nX_Ini
Else
nRadio = nX_Ini - nX_Fin
End If

If bTrazarCirculo Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio

ElseIf bTrazarElipseH Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio, , , , 0.5

ElseIf bTrazarElipseV Then
Me.Picture1.Circle (nX_Ini, nY_Ini), nRadio, , , , 1.5
End If
End If
End If

End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
bDibujando = False
Me.Picture1.DrawMode = nDrawMode
Me.Picture1.DrawWidth = nDrawWidth
End Sub

'''''''''''''''''''''''''''''''''
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar