[Gfoss] [ANTISPAMRT:] determinare l'orientazione dei lati di poligoni rispetto a una linea

giulianc51 giulianc51 a gmail.com
Gio 11 Giu 2015 15:27:21 CEST


Il giorno Thu, 11 Jun 2015 12:44:21 +0200
Marco Guiducci <marco.guiducci a regione.toscana.it> ha scritto:

> On Thu, 11 Jun 2015 11:51:12 +0200
> Claudia Testanera <claudia.testanera a gmail.com> wrote:
> 
> > Ciao a tutti!

ciao,

aggiungo a caldo alcune osservazioni, sono elucubrazioni che non so se
efficaci, tanto meno efficienti: semmai le butti :-)


> > Ho un problema da risolvere, per cercare di automatizzare un
> > processo.
> > 
> > Nell'ambito di un progetto, devo individuare l'orientazione delle
> > facciate di edifici (poligoni) rispetto ad una strada (linea).
> > ......
> 
> .... un edificio è composto da tante facciate
> quanti sono i suoi segmenti, un segmento è la linea che unisce due
> vertici consecutivi del poligono dell'edificio). detta così dovrei
> risolvere un problema di uno a molti: un segmento di facciata con
> molti segmenti (la spezzata) della strada.......

1) in computer graphics un problema frequente è quello di scartare le
faccie non viste (la cui normale coincide a meno di +- 90gradi con
quella del raggio di proiezione) questo mi fa pensare che potresti
collocarti in strada davanti all'edificio (intersezione V della normale
dal centroide C dell'edificio alla linea strada di cui già parlava
Marco se ho letto bene) e calcolare l'angolo fra ogni facciata e il
vettore VC (prodotto interno dei vettori) trattenendo solo quelle la cui
differenza angolare è > 90gradi (coseno negativo, cioè guardano verso
V);

2) un'altra soluzione, forse più vicina al tuo approccio è quella di
calcolare l'angolo rispetto al nord delle facciate e della linea strada
(sempre prodotto interno del vettore v = (x2-x1,y2-y1) e n = (0,1) e
calcolare la differenza ed anche quì scartando / trattenendo quelle
superiori / inferiori ad una certa soglia;

3) attenzione al senso di percorrenza dei vettori (lati) che influisce
sul valore degli angoli;

4) per evitare il problema del senso di percorrenza dei lati, puoi
scartare le facciate con la normale parallele alla linea strada; delle
rimanenti potresti poi trattenere solo quelle il cui punto medio è
più vicino alla strada (però complica e allunga);

5) attenzione2: puoi conoscere il senso di percorrenza del perimetro dal
segno dell'area; però le funzioni predefinite potrebbero dare (proprio
per superare il problema del senso di percorrenza del perimetro) il
valore assoluto dell'area (sentire quelli più esperti); in questo caso
non ti risolverebbero il problema e devi provvedere direttamente :-)

6) attenzione3: ho ragionato nell'ipotesi che ogni facciata coincida con
un lato (vettore) ma potrebbe non essere sempre così; nel caso di
facciate composte da alcuni segmenti tutto continua a funzionare, ma
nel caso di facciate definite ma molti segmenti la situazione potrebbe
degenerare;

a prima vista la soluzione 1) mi sembra più robusta; se mi venisse altro
aggiungo :-)


> ..... .. ciao, marco

ciao a tutti,
giuliano




Maggiori informazioni sulla lista Gfoss