Il giorno Thu, 11 Jun 2015 12:44:21 +0200
Marco Guiducci <marco.guiducci@regione.toscana.it> ha scritto:
On Thu, 11 Jun 2015 11:51:12 +0200
Claudia Testanera <claudia.testanera@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