Saludos.
Te he dado cuartel para que no te encontrases el tema solucionado despues de comerte la cabeza, compañero lokoman.
El caso es que creo que no has pillado bien el asunto.
Las coordenadas positivas y negativas deben significar que cada linea comienza donde acabó la anterior.
Aunque no tengo claro como se hace para comenzar una linea nueva. Cada bloque deberia ser una parte del grafico, y debería tener al comienzo las coordenadas de inicio. Yo he usado el centro del PictureBox como inicio. A ver que os parece: 
Se necesita un TextBox, un PictureBox grandecito y 3 botones (Command1, 2 y 3), y las coordenadas en un fichero llamado "Fichero.txt" de momento.    
Código vb:
Ver original- Option Explicit 
-   
- Private Type Coordenadas 
-   X As Long 
-   Y As Long 
- End Type 
-   
- Private Sub Command1_Click() 
-   ' carga las coordenadas del fichero y las muestra en el textbox. 
-   Dim F As Long 
-   Dim F2 As Long 
-   Dim Block() As Coordenadas 
-   Text1.Text = "" 
-   ' intentamos cargar hasta 100 posibles blocks 
-   For F = 1 To 100 
-     If CargaCoordenadas("Fichero.txt", F, Block) Then 
-       Text1.Text = Text1.Text & "Block" & F & vbCrLf & Block(0).X & ", " & Block(0).Y & vbCrLf 
-       For F2 = 1 To UBound(Block) 
-         Text1.Text = Text1.Text & Block(F2).X & ", " & Block(F2).Y & vbCrLf 
-       Next F2 
-     Else 
-       ' si un Block no existe se para y no se cargan mas 
-       Exit For 
-     End If 
-   Next F 
- End Sub 
-   
- Private Sub Command2_Click() 
-   ' carga las coordenadas del Block 2 y las muestra en un grafico 
-   Dim Block() As Coordenadas 
-   Picture1.Cls 
-   CargaCoordenadas "Fichero.txt", 2, Block 
-   MuestraGrafico Block, Picture1, vbRed, "Block 2" 
- End Sub 
-   
- Private Sub Command3_Click() 
-   ' carga coordenadas aleatorias y las muestra en un grafico 
-   Dim Block() As Coordenadas 
-   Dim F As Long 
-   Picture1.Cls 
-   CargaCoordenadasAleatorias Block, 100, 300 
-   ' las mostramos en el textbox 
-   Text1.Text = "Block Aleatorio" & vbCrLf & Block(0).X & ", " & Block(0).Y & vbCrLf 
-   For F = 1 To UBound(Block) 
-     Text1.Text = Text1.Text & Block(F).X & ", " & Block(F).Y & vbCrLf 
-   Next F 
-    
-   MuestraGrafico Block, Picture1, vbRed, "Block Aleatorio" 
- End Sub 
-   
- Private Function CargaCoordenadas(ByVal FicheroTXT As String, ByVal NumBlock As Long, Matriz() As Coordenadas) As Boolean 
-   ' carga una matriz con las coordenadas del Block elegido y del fichero elegido 
-   Dim NumFichero As Integer 
-   Dim Linea As String 
-   Dim BlockABuscar As String 
-   Dim Coord() As String 
-   Dim Encontrado As Boolean 
-   BlockABuscar = "BLOCK " & NumBlock 
-   ReDim Matriz(0) 
-   On Local Error GoTo ErrorSub 
-   NumFichero = FreeFile 
-   Open FicheroTXT For Input As NumFichero 
-   Do Until EOF(NumFichero) 
-     Line Input #NumFichero, Linea 
-     If Encontrado = False Then 
-       If UCase$(Trim$(Linea)) = BlockABuscar Then 
-         Encontrado = True 
-         GoTo Otro 
-       End If 
-     End If 
-     If Encontrado = True Then 
-       If UCase$(Left$(Trim$(Linea), 5)) = "BLOCK" Then Exit Do 
-       Coord = Split(Linea, ",") 
-       ReDim Preserve Coord(1) ' nos aseguramos de que se ha creado la matriz 
-       Matriz(UBound(Matriz)).X = Val(Coord(0)) 
-       Matriz(UBound(Matriz)).Y = Val(Coord(1)) 
-       ReDim Preserve Matriz(UBound(Matriz) + 1) 
-     End If 
- Otro: 
-   Loop 
- ErrorSub: 
-   If Err.Number <> 0 Then MsgBox Err.Description 
-   CargaCoordenadas = Encontrado 
-   Err.Clear 
-   On Local Error Resume Next 
-   Close 
-   If UBound(Matriz) > 0 Then ReDim Preserve Matriz(UBound(Matriz) - 1) 
- End Function 
-   
- Private Sub MuestraGrafico(Matriz() As Coordenadas, ByVal Picture As PictureBox, Optional ByVal sColor As Long = vbBlue, Optional ByVal Titulo As String = "") 
-   Dim F As Long 
-   Dim CoordAct As Coordenadas 
-   On Local Error Resume Next 
-   Picture.AutoRedraw = True 
-   Picture.Print Titulo 
-   CoordAct.X = (Picture.Width) / 2 
-   CoordAct.Y = (Picture.Height) / 2 
-   For F = 0 To UBound(Matriz) 
-     Picture.Line (CoordAct.X, CoordAct.Y)-(CoordAct.X + Matriz(F).X, CoordAct.Y + Matriz(F).Y), sColor 
-     CoordAct.X = CoordAct.X + Matriz(F).X 
-     CoordAct.Y = CoordAct.Y + Matriz(F).Y 
-   Next F 
- End Sub 
-   
- Private Sub CargaCoordenadasAleatorias(Matriz() As Coordenadas, Cantidad As Long, Optional ByVal MaxLen As Long = 250) 
-   Dim F As Long 
-   ReDim Matriz(Cantidad) 
-   For F = 0 To Cantidad - 1 
-     Matriz(F).X = Int(Rnd * (MaxLen * 2)) - MaxLen 
-     Matriz(F).Y = Int(Rnd * (MaxLen * 2)) - MaxLen 
-   Next F 
- End Sub