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 ...
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