SECONDO PROGETTO DI INTERFACCE - A.A. 2001-2002 - NUOVO ORDINAMENTO

SECONDO PROGETTO DI INTERFACCE - A.A. 2001-2002

NUOVO ORDINAMENTO

APPENDICE AL TESTO

Il programma di triangolazione si comporta correttamente soltanto se

Semplicita' del poligono

E' responsabilita' dell'utente fornire un poligono semplice. L'interfaccia NON deve controllare che il poligono sia semplice. Se fornisce un poligono non semplice verra' una triangolazione errata.

Vertici in senso antiorario

NOTA:
Se l'interfaccia disegna il poligono in coordinate di device, dove la y cresce verso il basso, allora il verso appare invertito: un poligono dato in senso antiorario appare come orario e viceversa.

Qui l'idea era dire, come nel caso precedente, che e' responsabilita' dell'utente fornire un poligono con l'orientamento giusto.

Ma se i vertici del poligono sono dati in senso orario il programma di triangolazione (metodo triangulate()) non termina, bloccando anche l'interfaccia, e questo non e' bello.
Pertanto facciamo in modo che si possano trattare anche poligoni dati in senso orario.

E' fornita una NUOVA VERSIONE del file TriPolig.java che contiene in piu' i due metodi pubblici:

Dopo aver costruito il poligono e PRIMA di iniziare a triangolarlo occorre inserire una linea del tipo:
   if (!tp.isCounterClockwise())  tp.reversePolygon();
dove tp e' la vostra variabile di tipo TriPolig.

ATTENZIONE:
Non l'ho testato esaustivamente, se riscontrate che si comporti in modo errato avvisatemi!