On Fri, 5 Apr 2013 18:49:23 +0200, Luca Mandolesi wrote:
vorrei capire se esistono funzioni per ricavare gli angoli di
intersezione tra 2 rette su un gis.
Luca,
non serve assolutamente nulla di esoterico: basta un pizzico di
geometria
analitica del liceo fatta con le quattro operazioni aritmetiche.
giunto un rinfreschino di memoria se puo' tornare utile:
http://it.wikipedia.org/wiki/Coefficiente_angolare
assumendo di avere due segmenti arbitrari che coincidono sul vertice
[x0,y0]:
gli altri due vertici saranno rispettivamente [x1,y1] ed [x2,y2]
(insomma, formano una bella V)
prima ti calcoli il coefficiente angolare di ciascuno dei due segmenti
con questa formuletta:
m1 = (y1 - y0) / (x1 - x0)
m2 = (y2 - y0) / (x2 - x0)
poi ti calcoli il prodotto dei due coefficienti angolari: se i segmenti
sono rigorosamente perpendicolari ti deve tornare esattamente -1
m1 * m2 == -1.0
se invece sono "quasi perpendicolari" ti tornera' un valore leggermente
maggiore (o minore): dato che immagino sara' abbastanza difficile
ricostruire
la tolleranza/accuratezza delle gromae utilizzate dagli agrimensori
dell'epoca,
suppongo che ti convenga operare empiricamente.
p.es. puoi iniziare verificando gli intevalli tra -0.9 e -1.1 (-0.8 |
-1.2)
... (-0.7 | -1.3) e da li poi procedi calibrandoti "ad occhio
spannanometrico"
i valori limite piu' appropriati per valutare le tue centuriazioni.
naturalmente devi stare ben attento al trappolone in agguato: se uno
dei
due segmenti e' esattamente orizzontale oppure verticale il tuo
programmino
andra' "misteriosamente" in crash ;-)
... devi blindare il tuo codice contro questa eventualita'
ciao Sandro
--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
638 iscritti al 28.2.2013