31.05.2013 Views

2 Taglio della vegetazione - Intro Page - Università degli Studi di ...

2 Taglio della vegetazione - Intro Page - Università degli Studi di ...

2 Taglio della vegetazione - Intro Page - Università degli Studi di ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

End If<br />

CampoDefinito = True 'Informa il blocco <strong>di</strong> grafica che il campo è ra definito e si può quin<strong>di</strong><br />

<strong>di</strong>segnare<br />

Me.Refresh() 'Rigenera la Form<br />

Me.btnOpenFile.Enabled = False 'Disabilita il bottone <strong>di</strong> apertura del file per eviare errori<br />

Stoppati = False 'Inizializza come falso il valore <strong>di</strong> stop che permette <strong>di</strong> interrompere la<br />

simulazione<br />

End Sub<br />

Private Sub btnStartSimul_Click( ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles btnStartSimul.Click<br />

Dim i, j, k, Spostamenti, Curve, Pres, TCurva, Velocità, Time As Integer<br />

Dim PuntoBuono As Boolean<br />

Dim ListaDirezioni As Array<br />

Dim Direzione As Byte<br />

Dim MatriceCampoTemp(r, c) As Integer<br />

Copy(MatriceCampo, MatriceCampoTemp) 'Fa un backup <strong>di</strong> MatriceCampo perché quest'ultima<br />

verrà poi mo<strong>di</strong>ficata nel corso <strong>della</strong> simulazione<br />

Velocità = CInt(InputBox("V [m/s]")) 'Richiede all'utente <strong>di</strong> inserire la velocità del robot in modo<br />

da eseguire calcoli sul tempo impiegato dal processo <strong>di</strong> sminamento<br />

TCurva = CInt(InputBox("Time to rotate of 90°")) 'Richiede all'utente <strong>di</strong> inserire il tempo<br />

necessario al robot per curvare <strong>di</strong> 90° in modo da eseguire calcoli sul tempo impiegato dal processo <strong>di</strong><br />

sminamento<br />

'Seleziona i punti del contorno scgliendoli tra tutti i punti <strong>di</strong> MatriceCampo<br />

For i = 0 To r 'Controlla tutti i punti <strong>di</strong> MatriceCampo<br />

For j = 0 To c<br />

If MatriceCampo(i, j) = -1 Then 'Analizza solo i punti del contorno come punti <strong>di</strong> partenza<br />

'Inizializza e variabili <strong>della</strong> simulazione<br />

PuntoBuono = True<br />

Curve = 0<br />

Spostamenti = 0<br />

Ratt = i 'Inizializza il valore <strong>della</strong> riga attalmente occupata dal robot<br />

Catt = j 'Inizializza il valore <strong>della</strong> riga attalmente occupata dal robot<br />

OldDir = 0 'Convenzionamente si suppone che il robot fosse posizioato verso nord allo<br />

step precedente: questo non dà comunque problemi perché all'inizio non sorgono ambiguità<br />

'Itera il seguente blocco <strong>di</strong> istruzioni fino a quando il campo non è completamente pulito<br />

Do<br />

If Stoppati = True Then Exit Do 'Se viene premuto il tasto <strong>di</strong> interruzione <strong>di</strong> simulazione<br />

esce dal Loop<br />

'Regola 1: Sceglie il quadrato a valore maggiore tra quelli a<strong>di</strong>acenti<br />

ListaDirezioni = Reg1() 'Pone in ListaDirezioni il valore resituito dalla funzione Reg1<br />

148

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!