Salve.
Mi hanno sottoposto un problema interessante: data una serie di poligoni regolari
(rettangoli), ed un attributo (N, integer), come suddividere ogni poligono in N parti
uguali, lungo l'asse maggiore? Si possono inventare un po' di strategie arzigogolate,
ma ho il sospetto che ci possa essere un metodo semplice, che mi sfugge.
Saluti, e buona giornata.
- --
Paolo Cavallini - www.faunalia.eu
Corsi QGIS e PostGIS: http://www.faunalia.eu/training.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Icedove - http://www.enigmail.net/
Il giorno Fri, 14 Mar 2014 08:39:43 +0100
Paolo Cavallini <cavallini@faunalia.it> ha scritto:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Salve.
ciao,
Mi hanno sottoposto un problema interessante: data una serie di
poligoni regolari (rettangoli), ed un attributo (N, integer), come
suddividere ogni poligono in N parti uguali,.....
non so se ho capito bene: dividere un rettangolo (immagino comunque
orientato nello piano) in strisce ortogonali al
.... lungo l'asse maggiore?
effettivamente il più lungo, indipendentemente dall'orientamento?
Si possono inventare un po' di strategie arzigogolate, .....
ci provo
a) individuazione del lato più lungo (in un rettangolo basta confrontare
i primi due: P2-P1 e P3-P2)
b) interpolazione di N-1 punti lungo il lato più lungo e sull'omologo
(P1+(k/N)*(P2-P1) e P4+(k/N)*(P3-P4) ovvero P2+(k/N)*(P3-P2) e
P1+(k/N)*(P4-P1) per 1<=k<=N; i settori stanno fra k-1 e k);
spero di aver capito bene (anche se la condizione non è sufficiente a
garantire l'assenza di cavolate nella proposta)
Saluti, e buona giornata.
- --
Paolo Cavallini - www.faunalia.eu
On Fri, Mar 14, 2014 at 12:43:28PM +0100, giulianc51 wrote:
a) individuazione del lato più lungo (in un rettangolo basta confrontare
i primi due: P2-P1 e P3-P2)
b) interpolazione di N-1 punti lungo il lato più lungo e sull'omologo
(P1+(k/N)*(P2-P1) e P4+(k/N)*(P3-P4) ovvero P2+(k/N)*(P3-P2) e
P1+(k/N)*(P4-P1) per 1<=k<=N; i settori stanno fra k-1 e k);
La (b) la farei a colpi di ST_OffsetCurve passando il lato corto
come primo argomento e x*(distanza_massima/N) come secondo
argomento, dove x va da 1 a N-1 e cambiando segno se ci si accorge che
si sta andando dalla parte sbagliata ;).
Vi è anche il problema che nell'aritmetica dei computers non si riesce a esprimere un numero reale qualsiasi.
Mettendo da parte il come fare a trovarla.
Vi è comunque il problema che la regola richiesta:
La somma delle aree dei poligoni contenuti (tutti con area uguale) deve essere pari all'area del poligono risultante.
Non sempre è possibile nell'aritmetica dei computers.
Pensa a un poligono che abbia area 0.1.
Ovvero un numero non esprimibile in aritmetica binaria.
A parer mio non è possibile trovare un numero finito di poligoni aventi area esprimibile in aritmetica binaria e la cui somma dia l'area di partenza (che in binario non è esprimibile)
Per cui la risposta è che come regola generale : con i computers non è possibile ottenere cio' che chiede Paolo.
Poi in casi particolari , ovvero quando l'area di un poligono assume valori particolari puo' anche essere possibile trovare questi N sotto-poligoni.
A.
On 15/03/2014 00:20, giulianc51 wrote:
Il giorno Fri, 14 Mar 2014 02:19:02 -0700 (PDT)
emigrato <adminforum@wbg.lodzkie.pl> ha scritto:
ciao Novarese (o ti devo chiamare "Creativo" visto le molteplici tue
identità?
quello di Marco (tuo link) non è che non ha soluzioni, non ha
soluzione univoca, come nota Paolo nel suo commento;
il problema di Paolo su questa lista invece sì, sempre ovviamente che
io abbia capito bene
ciao,
giuliano
_______________________________________________
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.
666 iscritti al 22.7.2013