[Gfoss] verifica senso digitalizzazione geometria

giuliano giulianc a tiscali.it
Gio 16 Giu 2011 09:48:22 CEST


On Wed, 15 Jun 2011 15:46:29 +0200
Luca Sigfrido Percich <sigfrido a tiscali.it> wrote:

> 
> Scusa, lo so, mi sono espresso frettolosamente.
> 
> Se p[0]..p[n] è la matrice dei punti che compongono il poligono
> ordinata secondo il verso geometrico,
> 
> bound[0]..bound[3] è una matrice che contiene 4 indici numerici tali
> che:
> 
> p[bound[0]] è il punto a ordinata massima (p[bound[0]].y = y_min)
> p[bound[1]] è il punto ad ascissa massima
> p[bound[2]] è il punto as ordinata minima
> p[bound[3]] è il punto ad ascissa minima
> ........


ciao Luca,

0) mi sembra che il tuo algoritmo si basi sul fatto che per passare con
un orientamento ORARIO dall'ordinata max a quella min occorre passare
prima per l'ascissa max (o per passare dall'ascissa max a quella min
occorre prima passare dall'ordinata min): questo e' il senso
dell'ordine crescente richiesto per i dati secondo i tre indici 0,1,2 o
1,2,3;

1) mi sembra che l'algoritmo quindi funzioni solo per poligoni non
intrecciati (non ho un background geografico - cartografico, per cui ne
parlo in termini puramente geometrici); 

2) non e' robusto: mi sembra che nel caso di un poligono antiorario
(1,1), (3,2), (4,4), (2,3), (1,1) o orario (1,1), (2,3), (4,4), (3,2),
(1,1) non sia in grado di determinarne il senso;

3) curiosita': quale la fonte di questo algoritmo?

4) il metodo dell'area proposto da Giovanni e' basato
sulla somma algebrica delle aree sottese ad ogni lato (cosi' mi sembra
di ricordare nelle versioni che ho visto pubblicate: Newmann/Sproull?
Foley/VanDam? Knuth? se e' importante cerco di trovarlo) quindi dovrebbe
dare comunque il valore dell'area; il segno sara' positivo o negativo a
seconda del senso di percorrenza (dovrebbe funzionare anche
per poligoni intrecciati);

5) un concetto analogo e' quello del momento statico di una forza
(un lato) rispetto ad un punto che puo' destrogiro o sinistrogiro, ma
occorre verificare e inoltre il calcolo probabilmente e' molto vicino a
quello fatto con il metodo dell'area; 

ciao,
giuliano




Maggiori informazioni sulla lista Gfoss