Author Topic: [Software] Qualcuno capisce...  (Read 14572 times)

0 Members and 1 Guest are viewing this topic.

Offline mircof

  • Esperto del forum
  • ***
  • Posts: 201
  • Karma: 42
Re:[Software] Qualcuno capisce...
« Reply #30 on: 19 August , 2011, 10:28:38 AM »
La problematica è la stessa che ho indicato per la metodologia che avevo pensato.
Si può procedere cosi:

Si fa un controllo e si verifica se vi siano vertici del poligono che hanno ordinata y=y0.
Se esiste uno, o più, vertici di questo tipo si verifica se i lati che convergono nel vertice stanno entrambi da una stessa parte rispetto all’orizzontale (entrambi sopra o entrambi sotto) oppure da parti opposte.
Nel primo caso (caso del punto 4 in figura) il vertice 4 si considererà appartenente sia al lato della poligonale L3 che al lato L4, risulteranno due intersezioni.
Nel secondo caso( caso del punto 3 in figura) il vertice 3 si considererà appartenere ad uno solo dei due lati della poligonale (L2, L3), risulterà una sola intersezione.
Lati di poligonale con ordinata y=y0 si possono controllare preliminarmente verificando se il punto ricercato vi appartiene o meno nel caso in cui il punto non vi appartenga si esclude il lato dalla procedura di ricerca delle intersezioni.



Offline ferrarialberto

  • Semi Esperto
  • **
  • Posts: 137
  • Karma: 26
Re:[Software] Qualcuno capisce...
« Reply #31 on: 21 August , 2011, 22:02:14 PM »
Leggo solo ora questo interessante topic; anzitutto vado a memoria perchè ormai sono passati un po' di anni da quando iniziai a plottare i domini di rottura tridimensionali. Il discorso di Zac non fa una pecca, vorrei soltanto aggiungere che la stessa osservazione non vale solo per le sezioni tensoinflesse ma anche per le pressoinflesse, sebbene in quest'ultimo caso possa essere meno evidente l'effetto osservato dal buon Zax. Ovvero il punto di massima trazione e quello di massima compressione di una sezione simmetrica armata asimmetricamente non è mai contraddistinto da momenti nulli. Se guardo il dominio 3D dall'alto (o dal basso), quindi immaginando di sovrapporre tutti i domini Mx-My al variare dell'azione assiale, vedo che parto da un punto esterno all'origine e arrivo nel punto diametralmente opposto.

Ciao.
ing. FERRARI Alberto - www.ferrarialberto.it

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re:[Software] Qualcuno capisce...
« Reply #32 on: 22 August , 2011, 15:55:02 PM »
Si la cosa sembra complessa, ed in effetti affrontata alla "leggera" ci si ritrova in un mare di se e di ma, da cui non se ne esce.
Il criterio di Massimo.T (che come sempre si attorciglia attorno alle sue idee, affezionandocisi e non volendole abbandonare) è corretto.
Con la correzione ultima da lui proposta funziona anche con i poligoni concavi e non solamente complessi.

Mircof ha ragione, il criterio di cui parlo funziona sempre e comunque. Sia con poligoni concavi che convessi.

Navigando nel forum frequentato da Afazio qualche tempo fa, il Bar dell'Ingegneria, in cui, appunto, qualcuno aveva chiesto su come fare a risolvere il problema del dentro/fuori del punto ad un poligono, mi sono imbattuto in un metodo semplice semplice, ovvero senza trasformazioni di assi, cose astruse ecc.

Il metodo, e permettetemi di continuare con il mistero, ma solamente perchè periodo vacanziero, io l'ho ribattezzato "metodo della semi retta positiva".
Chissà già dal nome.....

Ricordo di aver risolto il problema con delle funzioni in VBA. Asseganto un poligono qualsiasi (concavo o convesso) attraverso le coordinate dei suoi vertici ed assegnato un punto qualsiasi attraverso le sue coordinate, la procedura riusciva a stabilire se il punto era interno, esterno o sulla frontiera. In quest'ultimo caso mi dava anche il numero del lato su cui giaceva il punto.
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re:[Software] Qualcuno capisce...
« Reply #33 on: 22 August , 2011, 15:58:39 PM »
La soluzione di Renato, anch'essa corretta (d'altra parte da lui non potevamo aspettarci di meno) ha il solito svantaggio di doversi prima accertare della convessità o meno del poligono.

Mircof ci si è avvicinato molto.

Ma quello che, a mio modesto avviso, mi sembra il metodo più semplice possibile è quello che ho ribattezzato "metodo della semiretta".

Vediamolo prima graficamente, perchè la trattazione analitica viene di conseguenza.

In pratica partendo dal punto x0,y0 si traccia una semiretta. Prima o poi, se x0,y0 è interno al poligono questa semiretta dovrà "bucare" il poligono stesso.
Fatto, quindi.

Però so cosa già mi direte, perchè la soluzione funziona per i poligoni convessi, ma per i concavi?

Basta semplicemente un piccolo passaggio, ovvero una variazione nella definizione:

Se la semiretta interseca il poligono un numero dispari di volte, il punto x0,y0 è interno al poligono.
Se la semiretta interseca il poligono un numero pari di volte (e il numero 0 qui va considerato pari), il punto x0,y0 è esterno al poligono.

Nella figura sottostante i casi che possono presentarsi. Per semplificare la trattazione analitica ho provveduto a segnare semirette orizzontali e con"x maggiori" di x0.




Non so se quest'idea era gia venuta in mente a qualcun altro, so pero' per certo che e' venuta in mente a me (ed è quella che ho usato per risolvere il problema) indipendentemente da altri.
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re:[Software] Qualcuno capisce...
« Reply #34 on: 22 August , 2011, 16:26:05 PM »
Ricordo di aver risolto il problema con delle funzioni in VBA. Asseganto un poligono qualsiasi (concavo o convesso) attraverso le coordinate dei suoi vertici ed assegnato un punto qualsiasi attraverso le sue coordinate, la procedura riusciva a stabilire se il punto era interno, esterno o sulla frontiera. In quest'ultimo caso mi dava anche il numero del lato su cui giaceva il punto.


per chi è curioso e vuole leggersi quella discussione al bar dell'ingegneria (avvenuta tra me e ninja alias Ronin dell'ingForum) ecco il link:

http://bar-ingegneria.forumfree.it/?t=8970619

Potrete vedere che sono stati trattati tutti i possibili casi di criticità del metodo:
- punto che giace su uno dei vertici
- punto che giace su uno dei lati
- semiretta test che interseca un vertice
- semiretta test che giace su uno dei lati
- semiretta test che giace su piu' lati tra loro consecutivi


Con l'occasione ringrazio Zax per avermi ricordato l'esistenza di questa discussione che sono andato prontamente a rileggere. Certo che ne avevo del tempo in quel tempo.

« Last Edit: 22 August , 2011, 16:31:36 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24