calcolo linea perpendicolare

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

calcolo linea perpendicolare

donpetros
salve a tutti, scusate il disturbo ho la necessità di creare la linea perpendicolare di una linea presente sul mio db oracle spatial. In realtà ne vorrei creare tre, 2 che passano sui 2 punti  delle linea e una terza che passa sul centroide della linea.
Non sono riuscito a trovare una funzione che lo fà. Potete dirmi qual'è l'algoritmo matematico per favore, così lo scrivo in python o in plsql ? (l'estrazione dei punti iniziali, finali e il centroide non sono un problema) 
P.S. la linea perpendicolare dovrebbe essere lunga 50 metri nella maggiorparte dei casi, per alcune eccezioni 30 metri.
Grazie mille a tutti in anticipo
Saluti
  Davide

_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

a.furieri
On Sat, 21 Feb 2015 11:27:38 +0100, Davide Petrucci wrote:
> Non sono riuscito a trovare una funzione che lo fà. Potete dirmi
> qual'è l'algoritmo matematico per favore, così lo scrivo in python o
> in plsql ?
>

http://it.wikipedia.org/wiki/Perpendicolarit%C3%A0

ciao Sandro
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Giuliano Curti
In reply to this post by donpetros
Il giorno Sat, 21 Feb 2015 11:27:38 +0100
Davide Petrucci <[hidden email]> ha scritto:

> salve a tutti,

ciao Davide;


> .... scusate il disturbo ho la necessità di creare la linea
> perpendicolare di una linea presente sul mio db oracle spatial...

premesso che:
        1) non so se è esattamente quello che vuoi
        2) non posso garantire che non sia bacata
        3) ...
        .) ...
        n-2) non è certamente scritta sufficientemente bene per essere
autodocumentata
        n-1) probabilmente è meglio scriversela da soli piuttosto che ..
        n) ....
        .) ....
        2n) se trovi errori e me li segnali te ne sono grato
        2n+1) idem se la migliori e me lo segnali
        2n+1) .... (*)
sotto trovi una bozza di funzione python per calcolare il piede della
perpendicolare da n0 al segmento n1-n2 (c'è anche se il piede
cade nel segmento o fuori ma a te adesso questo non interessa):

def EdgeNormalFromPoint(n0,n1,n2):
        """
                Calcola il piede della perpendicolare dal punto N0 al
segmento N1-N2;
                f(lag)int indice che il piede è interno o meno al
segmento.
        """
        x0,y0 = n0.x(),n0.y()
        x1,y1 = n1.x(),n1.y()
        x2,y2 = n2.x(),n2.y()
        # calcolo del punto con metodo vettoriale
        dux = x0 - x1
        duy = y0 - y1
        dx = x2 - x1
        dy = y2 - y1
        mw = math.sqrt(dx**2+dy**2)
        a = (dux*dx + duy*dy) / mw
        x = x1 + a*dx/mw
        y = y1 + a*dy/mw
        if (a/mw) >= 0 and (a/mw) <= 1:
                fint = True
        else:
                fint = False
        return fint,x,y

da quì dovresti poter costruire tutto quello che ti serve;

> Grazie mille a tutti in anticipo
> Saluti
>   Davide

ciao,
giuliano

(*) sto leggendo un bel libro di Wallace sui numeri transfiniti di
Cantor: spero ti fiderai sulla parola che il numero delle premesse
potrebbe raggiungere aleph con zero :-) :-)
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Francesco P. Lovergine
In reply to this post by donpetros
On Sat, Feb 21, 2015 at 11:27:38AM +0100, Davide Petrucci wrote:

> salve a tutti, scusate il disturbo ho la necessità di creare la linea
> perpendicolare di una linea presente sul mio db oracle spatial. In realtà
> ne vorrei creare tre, 2 che passano sui 2 punti  delle linea e una terza
> che passa sul centroide della linea.
> Non sono riuscito a trovare una funzione che lo fà. Potete dirmi qual'è
> l'algoritmo matematico per favore, così lo scrivo in python o in plsql ?
> (l'estrazione dei punti iniziali, finali e il centroide non sono un
> problema)
> P.S. la linea perpendicolare dovrebbe essere lunga 50 metri nella
> maggiorparte dei casi, per alcune eccezioni 30 metri.
> Grazie mille a tutti in anticipo
> Saluti

Visto che parli pitonese, dai una occhiata qua:

https://bitbucket.org/flovergine/transects/src/648e9c8f4f2578af6862f047354e10dee0db6a41/transects.py?at=master

in particolare a riga 298, e nota relativa. Ottenere la linea perpendicolare è
meno scontato di quello che sembra ;-)


--
Francesco P. Lovergine
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Giuliano Curti
Il giorno Fri, 27 Feb 2015 16:16:56 +0100
"Francesco P. Lovergine" <[hidden email]> ha scritto:

ciao Frankie,


> On Sat, Feb 21, 2015 at 11:27:38AM +0100, Davide Petrucci wrote:
> > salve a tutti, scusate il disturbo ho la necessità di creare la
> > linea perpendicolare ......
>
> Visto che parli pitonese, dai una occhiata qua:
>
> https://bitbucket.org/flovergine/transects/src/648e9c8f4f2578af6862f047354e10dee0db6a41/transects.py?at=master
>
> in particolare a riga 298, e nota relativa. Ottenere la linea
> perpendicolare è meno scontato di quello che sembra ;-)

il problema (generale, non specifico) interessa anche a me; ho cercato
di leggere la tua nota ma il mio inglese è alquanto zoppicante (*) e
ho colto solo la segnalazione di un problema numerico "instabile" senza
spiega: qual'è il motivo della instabilità, oltre al fatto che occorre
qualche cautela(**) quando il punto è sul segmento?


grazie, ciao,
giuliano


(*) così gli amici della lista traduzioni capiranno anche il motivo del
mio scarso impegno a partecipare ai loro lavori da qualche tempo in
qua .... :-(

(**) @Davide: questo è un caso che mi sembra di non aver previsto nello
spezzone di codice che ti ho inviato; in realtà l'instabilità dovrebbe
presentarsi solo nel caso in cui il punto coincide con il primo estremo
del segmento, in ogni caso qualche supplemento di attenzione per i casi
di punto lungo il segmento e di segmento orizzontale/verticale non
guasta :-)
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Francesco P. Lovergine
On Fri, Feb 27, 2015 at 05:11:16PM +0100, giulianc51 wrote:
>
> il problema (generale, non specifico) interessa anche a me; ho cercato
> di leggere la tua nota ma il mio inglese è alquanto zoppicante (*) e
> ho colto solo la segnalazione di un problema numerico "instabile" senza
> spiega: qual'è il motivo della instabilità, oltre al fatto che occorre
> qualche cautela(**) quando il punto è sul segmento?
>

L'instabilità numerica, derivante dall'uso di aritmetica a precisione
finita, rende problematica l'implementazione delle equazioni standard
della geometria analitica: i numeri floating point sono solo
una approssimazione del campo dei numeri reali, bisogna tenerne conto.

Senza gli accorgimenti indicati nel codice, i transetti del mio codice
deviano dalla perpendicolare molto visibilmente. E' lo stesso motivo per cui
la soluzione di una equazione di secondo grado non si implementa
con le formulette della scuola media, per farla breve. L'implementazione
di un algoritmo numerico per questi motivi è non raramente apparente
magia nera.

--
Francesco P. Lovergine
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Giuliano Curti
Il giorno Sat, 28 Feb 2015 15:03:37 +0100
"Francesco P. Lovergine" <[hidden email]> ha scritto:

ciao Frankie;


> On Fri, Feb 27, 2015 at 05:11:16PM +0100, giulianc51 wrote:
> >
> > il problema (generale, non specifico) interessa anche a me;......
>
> L'instabilità numerica, derivante dall'uso di aritmetica a precisione
> finita, ....

oops, questo è un problema che non ho ancora affrontato .... sono
ancora fermo alla definizione dei numeri reali: non riesco a decidermi
tra la  sezioni di Dedeking e le successioni regolari di Cantor;
alla rappresentazione in virgola mobile credo mi manchino un paio di
secoli: devo aspettare ancora un pò :-)


grazie, ciao,
giuliano


_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

geodrinx
Scusate se disturbo le dissertazioni accademiche sul calcolo differenziale  :)  , ma mi sembra che il problema posto all'inizio chieda la normale al punto centrale di una linea, e non il contrario.
Sbaglio ?

R

Il giorno 28/feb/2015, alle ore 21:11, giulianc51 <[hidden email]> ha scritto:

> Il giorno Sat, 28 Feb 2015 15:03:37 +0100
> "Francesco P. Lovergine" <[hidden email]> ha scritto:
>
> ciao Frankie;
>
>
>> On Fri, Feb 27, 2015 at 05:11:16PM +0100, giulianc51 wrote:
>>>
>>> il problema (generale, non specifico) interessa anche a me;......
>>
>> L'instabilità numerica, derivante dall'uso di aritmetica a precisione
>> finita, ....
>
> oops, questo è un problema che non ho ancora affrontato .... sono
> ancora fermo alla definizione dei numeri reali: non riesco a decidermi
> tra la  sezioni di Dedeking e le successioni regolari di Cantor;
> alla rappresentazione in virgola mobile credo mi manchino un paio di
> secoli: devo aspettare ancora un pò :-)
>
>
> grazie, ciao,
> giuliano
>
>
> _______________________________________________
> [hidden email]
> 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.
> 666+40 iscritti al 5.6.2014
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

donpetros

Si sbagli non è cosi semplice...
Infatti noto che il calcolo non essere giusto per tutti i casi é anche un bel pó complesso.
Comunque vi informo che dopo un pó di nottate sono arrivato ad una soluzione definitiva ora l'ho fatto in plsql appena la codifico anche in python,  invio il tutto cosi chi avrá questo genere di richiesta potrá usarlo.
Grazie
ciao Davide

Il 28/Feb/2015 21:47 "Geodrinx" <[hidden email]> ha scritto:
Scusate se disturbo le dissertazioni accademiche sul calcolo differenziale  :)  , ma mi sembra che il problema posto all'inizio chieda la normale al punto centrale di una linea, e non il contrario.
Sbaglio ?

R

Il giorno 28/feb/2015, alle ore 21:11, giulianc51 <[hidden email]> ha scritto:

> Il giorno Sat, 28 Feb 2015 15:03:37 +0100
> "Francesco P. Lovergine" <[hidden email]> ha scritto:
>
> ciao Frankie;
>
>
>> On Fri, Feb 27, 2015 at 05:11:16PM +0100, giulianc51 wrote:
>>>
>>> il problema (generale, non specifico) interessa anche a me;......
>>
>> L'instabilità numerica, derivante dall'uso di aritmetica a precisione
>> finita, ....
>
> oops, questo è un problema che non ho ancora affrontato .... sono
> ancora fermo alla definizione dei numeri reali: non riesco a decidermi
> tra la  sezioni di Dedeking e le successioni regolari di Cantor;
> alla rappresentazione in virgola mobile credo mi manchino un paio di
> secoli: devo aspettare ancora un pò :-)
>
>
> grazie, ciao,
> giuliano
>
>
> _______________________________________________
> [hidden email]
> 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.
> 666+40 iscritti al 5.6.2014
_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014

_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

Giuliano Curti
In reply to this post by geodrinx
Il giorno Sat, 28 Feb 2015 21:47:03 +0100
Geodrinx <[hidden email]> ha scritto:

ciao Roberto,


> Scusate se disturbo le dissertazioni accademiche sul calcolo
> differenziale  :)  , ma mi sembra che il problema posto all'inizio
> chieda la normale al punto centrale di una linea, e non il contrario.
> Sbaglio ?

ehmmm ... sì, non stavamo parlando di calcolo differenziale, ma di
semplice "geometria analitica" (Frankie), "(elementare) calcolo
vettoriale" io; senonchè Frankie ha calato un carico da 11 con il
problema della aritmetica finita dei processori....(*);

 
> R

ciao,
giuliano


PS: già altri, che non cito, avevano sollevato tempo fa in lista analogo
problema: non sarebbe male un ripasso dell'argomento (almeno per me :-)


_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: calcolo linea perpendicolare

geodrinx


Inviato da iPhone

Il giorno 28/feb/2015, alle ore 22:30, giulianc51 <[hidden email]> ha scritto:

> Il giorno Sat, 28 Feb 2015 21:47:03 +0100
> Geodrinx <[hidden email]> ha scritto:
>
> ciao Roberto,
>
>
>> Scusate se disturbo le dissertazioni accademiche sul calcolo
>> differenziale  :)  , ma mi sembra che il problema posto all'inizio
>> chieda la normale al punto centrale di una linea, e non il contrario.
>> Sbaglio ?
>
> ehmmm ... sì, non stavamo parlando di calcolo differenziale,

anche un ripasso di calcolo ironico non sarebbe male.

:)

Simpaticamente

Roberto


_______________________________________________
[hidden email]
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.
666+40 iscritti al 5.6.2014