ciao,
inizio con la prima di una serie di domande sui poligoni :-) quando ho bisogno di sapere il vertice iniziale di un poligono, penso di dover usare il comando geom.vertexAT(0) che mi fornisce le coordinate; però in caso di foro (1) i vertici di questo hanno id's che partono dal n(umero)V(ertici)e(sterni) in avanti; per sapere quindi il vertice iniziale del primo foro penso di dover usare: plgns = geom.asPolygon() nVe0 = len(plgns[0]) e quindi il vertice inziale del (primo) foro è geom.vertexAT(nVe0); se volessi conoscere l'inizio del secondo foro dovrei eseguire: nVe1 = len(plgns[1]) startPoint2Foro = geom.vertexAt(nVe0+nVe1); esiste un metodo più semplice e diretto? grazie, ciao, giuliano (1) domanda nella domanda: che differenza c'è fra ring e island? _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 605 iscritti al 10.7.2012 |
2012/8/24 giuliano su Tiscali <[hidden email]>:
> ciao, > > inizio con la prima di una serie di domande sui poligoni :-) > > quando ho bisogno di sapere il vertice iniziale di un poligono, penso > di dover usare il comando geom.vertexAT(0) che mi fornisce le > coordinate; > > però in caso di foro (1) i vertici di questo hanno id's che > partono dal n(umero)V(ertici)e(sterni) in avanti; per sapere quindi il > vertice iniziale del primo foro penso di dover usare: > plgns = geom.asPolygon() Che tipo di variabile ritorna questo metodo? Tupla o Lista? _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 605 iscritti al 10.7.2012 |
On Sat, 25 Aug 2012 18:58:02 +0200
Luca Mandolesi <[hidden email]> wrote: > > geom = feat.geometry() > > plgns = geom.asPolygon() > > start = 0 > > for p in plgns: > > print "vertice iniziale", start > > start = = start + len(p) > > Non capisco l'ultima riga... butta via tutto, dovrebbe essere così (l'ho provato su poligono con 2 fori): geom = feat.geometry() plines = geom.asPolygon() # cerca il vertice start = 0 for l in plines: end = start + len(l) - 1 if vId == start or vId == end: return True start = start + len(l) return False (probabilmente la spiegazione non serve, però) la numerazione dei vertici è progressiva, quindi il primo vertice di una lista prende un identificativo uguale alla somma di tutti gli elementi delle liste precedenti, l'ultimo prende un identificativo pari al primo più tutti gli elementi della lista meno 1 (siamo in base 0); > Inoltre cosa significa "trovare i vertici iniziali". Vuoi il primo > vertice sia del perimetro che del buco? sì, ma non basta il vertice iniziale, serve anche il finale; ho scoperto (scusa l'enfasi ma per me è una scoperta :-) che ad es. modificando manualmente (non con la funzione analogica di qgis) il primo (ultimo) vertice, l'ultimo (primo) rimane dov'è ed il sistema, per non corrompere la topologia (sarebbe un poligono aperto), aggiunge un nuovo vertice (provare per credere); ovviamente anche questa topologia non è corretta (non saprei come segnalare la cosa a chi sa), pertanto, per mantenere la topologia corretta devo modificare entrambi i nodi; ecco l'importanza di sapere se un vertice è inizio/fine; questo peraltro vale anche per le mie funzioni di fillet, chamfer e offset; spero di essere stato chiaro, in caso contrario sono ben contento di approfondire :-) ciao, giuliano _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 605 iscritti al 10.7.2012 |
Free forum by Nabble | Edit this page |