background image

 

78 

 

Έξοδος της συνάρτησης είναι μια λίστα με τις συντεταγμένες (χ,ψ) των κελιών που περιέχει το 

κομμάτι που σαρώνεται. 

Στη  συνέχεια,  εκτελείται  η  συνάρτηση  pixelcalc(),  η  οποία  έχει  ως  είσοδο  τις 

συντεταγμένες (χ,ψ) του κομματιού που υπολογίστηκε στη gridy(), τα δεδομένα του αρχείου 

TIFF  και τις γωνίες εκκίνησης και τερματισμού του  κομματιού.  Η pixelcalc() υπολογίζει τα 

σημεία, στα οποία συμβαίνουν τα γεγονότα του κελιού με βάση το τεταρτημόριο, στο οποίο 

βρίσκονται, όπως περιγράφεται στο κεφάλαιο 3.3.1. Έξοδος της συνάρτησης είναι η λίστα με 

τα γεγονότα του κάθε κελιού. 

 

Η τελευταία συνάρτηση που εκτελείται μέσα στη rotation() είναι η initlist(), η οποία 

δέχεται  ως  είσοδο  τη  λίστα  σάρωσης  και  τη  γωνία  εκκίνησης.  Η  συνάρτηση  αυτή 

πραγματοποιεί την αρχικοποίηση της λίστας ορατότητας. Σε αυτό το σημείο τελειώνει η κλήση 

της visibility() και η ροή επιστρέφει στη main(). 

 

Ακολουθεί,  η  συνάρτηση  visibility(),  η  οποία  βρίσκεται  στο  αρχείο  par3.py,  που 

πραγματοποιεί τον έλεγχο ορατότητας.  Η visibility()  έχει ως είσοδο τη λίστα σάρωσης, την 

αρχικοποιημένη λίστα ορατότητας, τη γωνία εκκίνησης και τερματισμού του  κομματιού, τη 

θέση  και  το  ύψος  του  παρατηρητή.  Στόχος  της  συνάρτησης  αυτής  είναι  εκτέλεση  των 

γεγονότων, με αποτέλεσμα τον υπολογισμό της ορατότητας των κελιών, όπως περιγράφεται 

στο κεφάλαιο 3.4.3. Έξοδος της επομένως, είναι μια λίστα, στην οποία για κάθε κελί παίρνει 

τιμή ένα αν υπάρχει ορατότητα στο συγκεκριμένο κελί. 

 

Μέσω  της  συνάρτησης  visibilty()  καλείται  για  τα  γεγονότα  εισόδου  η  συνάρτηση 

maxbisearch() με ορίσματα έναν πίνακα και μια μεταβλητή, και επιστρέφει τη θέση στην οποία 

η επόμενη μεταβλητή έχει μεγαλύτερη τιμή, ενώ ταυτόχρονα η προηγούμενη μεταβλητή έχει 

μικρότερη  τιμή.  Αντίστοιχα,  τα  γεγονότα  κέντρου  χρησιμοποιούν  τη  bisearch(),  η  οποία 

πραγματοποιεί  με  τα  ίδια  ορίσματα  δυαδική  αναζήτηση,  και  επιστρέφει  τη  θέση  της 

μεταβλητής που δέχεται ως είσοδο. Με τον τερματισμό της συνάρτησης visibility(), η ροή του 

αλγορίθμου επιστρέφει στην main(), οπού συγκεντρώνεται το αποτέλεσμα του αλγορίθμου και 

στη συνέχεια ο αλγόριθμος τερματίζεται.