Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-02-2008, 10:19   #1
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5160
[C++] Dati N punti, come trovo quelli che compongono il perimetro?

Edit: risolto...

Ultima modifica di Abadir_82 : 01-02-2008 alle 10:43.
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 10:45   #2
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
non capisco se intendi trovare l'equazione di tutti i punti sul perimetro, o se vuoi solo misurarlo (facendo la somma dei lati). in ogni caso non capisco: tu stai parlando di punti interni o esterni a cosa? al poligono? non credo, visto che il perimetro è "di frontiera"...
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 11:13   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Abadir_82 Guarda i messaggi
Edit: risolto...
Perché non hai postato la soluzione ed hai persino cancellato il problema ? Avrebbe potuto risultare utile anche ad altre persone.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 11:14   #4
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Quote:
Originariamente inviato da Furla Guarda i messaggi
non capisco se intendi trovare l'equazione di tutti i punti sul perimetro, o se vuoi solo misurarlo (facendo la somma dei lati). in ogni caso non capisco: tu stai parlando di punti interni o esterni a cosa? al poligono? non credo, visto che il perimetro è "di frontiera"...

Credo che intenda una cosa del tipo: dato un insieme di punti sul piano tracciare il poligono più grande (area) che abbia come vertici un sottoinsieme dei punti dati e che racchiuda tutti gli altri punti non facenti parte dell'insieme dei vertici.

E' questo oppure ho detto una vaccata?


Edit: infatti! Sono interessato al problema!
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 14:36   #5
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5160
Quote:
Originariamente inviato da astorcas Guarda i messaggi
Credo che intenda una cosa del tipo: dato un insieme di punti sul piano tracciare il poligono più grande (area) che abbia come vertici un sottoinsieme dei punti dati e che racchiuda tutti gli altri punti non facenti parte dell'insieme dei vertici.

E' questo oppure ho detto una vaccata?


Edit: infatti! Sono interessato al problema!

Ho cancellato perche' pensavo che non fosse di interesse, un po' come quello dell'altro giorno del fare l'xcopy con funzioni di windows.
No, il problema era: dati N punti del piano tracciare il poligono che li inglobi tutti e che abbia area massima.
Devo ancora implementare il codice, pero' ti posto la soluzione che usero', magari ti viene utile.

- Cerchi il punto con coordinata Y maggiore.
- Tracci tutte le rette tra quel punto e gli altri e guardi il valore dell'angolo che formano con l'asse X. La retta che forma l'angolo piu' grande identifica il prossimo punto (contando di andare in senso orario). Se vuoi vedere il punto precedente ti basta cercare la retta che forma l'angolo piu' piccolo.

Per verificare l'appartenenza di un punto ad un poligono, cosa che credo di serva, traccia le rette tra quel punto ed i vertici, identifica gli angoli e sommali. Se la somma e' pari a 360 allora il punto fa parte del poligono.
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 14:57   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Abadir_82 Guarda i messaggi
No, il problema era: dati N punti del piano tracciare il poligono che li inglobi tutti e che abbia area massima.
Intendi: che li abbia tutti come suoi vertici?

Chiedo perchè con l'espressione "che li inglobi" a me era venuto da pensare che il poligono risultante potesse anche utilizzare solo un sottoinsieme di detti punti per tracciare il suo contorno purchè al suo interno "inglobasse" anche gli altri; a quel punto avrebbe avuto anche un senso il vincolo dell'area maggiore dato che si potevano generare più poligoni diversi.

La tua soluzione funziona ma se l'ho capita bene è anche l'unica soluzione perchè genera l'unico poligono in quanto deve usare tutti i punti come vertici di definizione del suo contorno
@EDIT: mi correggo, non è l'unico poligono possibile, mi sono sbagliato.

Confrontando gli angoli puoi anche implementare facilmente un algoritmo che ti sappia dire se il tuo poligono è concavo o convesso proprio con una verifica dell'andamento degli angoli dei segmenti che i vertici del suo contorno, ordinati in senso antiorario (o orario) formano...

@EDIT:
Quote:
Per verificare l'appartenenza di un punto ad un poligono, cosa che credo di serva, traccia le rette tra quel punto ed i vertici, identifica gli angoli e sommali. Se la somma e' pari a 360 allora il punto fa parte del poligono
C'è un algoritmo migliore : link

Ultima modifica di banryu79 : 01-02-2008 alle 15:03.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 15:21   #7
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5160
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Intendi: che li abbia tutti come suoi vertici?

Chiedo perchè con l'espressione "che li inglobi" a me era venuto da pensare che il poligono risultante potesse anche utilizzare solo un sottoinsieme di detti punti per tracciare il suo contorno purchè al suo interno "inglobasse" anche gli altri; a quel punto avrebbe avuto anche un senso il vincolo dell'area maggiore dato che si potevano generare più poligoni diversi.

La tua soluzione funziona ma se l'ho capita bene è anche l'unica soluzione perchè genera l'unico poligono in quanto deve usare tutti i punti come vertici di definizione del suo contorno
@EDIT: mi correggo, non è l'unico poligono possibile, mi sono sbagliato.

Confrontando gli angoli puoi anche implementare facilmente un algoritmo che ti sappia dire se il tuo poligono è concavo o convesso proprio con una verifica dell'andamento degli angoli dei segmenti che i vertici del suo contorno, ordinati in senso antiorario (o orario) formano...

@EDIT:

C'è un algoritmo migliore : link
Scusami, avevo capito male la tua risposta di prima. Allora si, avevi ragione, intendevo proprio quello che dicevi tu.
Con ingloba intendo il fatto che il punto stia nell'area racchiusa dal poligono, ma non necessariamente sul perimetro.
Come giustamente hai detto si va da un minino di 3 punti per il perimetro e tutti gli altri interni ad un massimo di infiniti punti per il perimetro e nessuno interno.
A me basta prendere quello piu' grande, non mi serve controllare concavo o convesso. Il link per vedere l'appartenenza ad un poligono invece lo guardo, puo' sempre far comodo.
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 16:09   #8
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Purtroppo ho finito l'Universita' da troppi anni per ricordarmi l'algoritmo.
E' comunque un problema noto, che ha interessato diversi ricercatori nel corso degli anni.
Quando ho questo tipo di problemi da risolvere, consulto delle librerie di algoritmi. Magari puoi confrontare la tua soluzione con una di quelle riportate. Non ho visto il link di banryu79, ma puoi controllare il libro di Sedgewick "Algorithms in C", penso che esista anche la versione italiana. Oppure puoi controllare i libri di Knuth. Li trovi in tutte le librerie e probabilmente anche on line.
Se fai lo sviluppatore per professione, ti consiglio di comprarti una copia di questi libri, ti semplificano la vita.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 18:03   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da sottovento Guarda i messaggi
omissis...
Non ho visto il link di banryu79...
E' una pagina che illustra il cosidetto PNPOLY - Point Inclusion in Polygon Test.
Credo sia il metodo "canonico" per risolvere il problema; pare esista almeno dagli anni 70.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 19:34   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Abadir_82 Guarda i messaggi
No, il problema era: dati N punti del piano tracciare il poligono che li inglobi tutti e che abbia area massima.
intendevi dire minima?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 19:39   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da 71104 Guarda i messaggi
intendevi dire minima?
Credo massima...perché ad esempio metti di avere 5 punti:
Codice:
.       .
    .
.       .
Il poligono di area massima è un rettangolo, quello di area minima è composto da due triangoli.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 20:01   #12
Abadir_82
Senior Member
 
Iscritto dal: Feb 2004
Città: Nord-Est
Messaggi: 5160
Quote:
Originariamente inviato da cionci Guarda i messaggi
Credo massima...perché ad esempio metti di avere 5 punti:
Codice:
.       .
    .
.       .
Il poligono di area massima è un rettangolo, quello di area minima è composto da due triangoli.
Esatto, massima.

Purtroppo sono in Olanda per lavoro e libri di algoritmi non ne ho sottomano. Ad ogni modo tutto risolto .

No no, sono qua solo per altri 3 mesi per il progetto Leonardo.

Ultima modifica di Abadir_82 : 01-02-2008 alle 20:03.
Abadir_82 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:01   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da cionci Guarda i messaggi
Credo massima...perché ad esempio metti di avere 5 punti:
Codice:
.       .
    .
.       .
Il poligono di area massima è un rettangolo, quello di area minima è composto da due triangoli.
anche questo è vero, ma se è di area massima allora il problema non è ben posto perché potrebbe trattarsi di un poligono arbitrariamente grande e non avrebbe senso. bisognerebbe specificare che gli angoli del poligono devono essere un sottoinsieme dei punti dati (magari era specificato nel post cancellato).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:04   #14
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ecco un altro link utile per gli interessati --> Point In Polygon Strategies
[link presente nella pagina web di cui ho postato il ink nel post #6]
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:19   #15
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
E' una pagina che illustra il cosidetto PNPOLY - Point Inclusion in Polygon Test.
Credo sia il metodo "canonico" per risolvere il problema; pare esista almeno dagli anni 70.
Allora probabilmente stiamo parlando dello stesso algoritmo. Scusa il mio inutile intervento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:21   #16
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Allora probabilmente stiamo parlando dello stesso algoritmo. Scusa il mio inutile intervento
Non è stato inutile, e ogni intervento e testimonianza di conoscenza è benaccetto
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:22   #17
Mirkolo
Senior Member
 
L'Avatar di Mirkolo
 
Iscritto dal: Sep 2007
Messaggi: 329
Ora ho capito cosa intendevi nell'altro topic quando parlavi di ordinamento dei punti Meglio tardi che mai..
C'ho pensato su un attimo pure io e penso che l'ideale sia definire una funzione di costo come combinazione lineare di area e perimetro.
Generare una lista di triangoli che coprono tutta la lista di punti e che non intersecano tra di loro. Calcolare l'area come somma delle aree dei triangoli e il perimetro come somma delle lunghezze dei lati che appartengono a un solo triangolo. Poi valutare l'eliminazione dei triangoli che portano a un miglioramento della funzione di costo a patto che ogni vertice appartenga ad almeno due tringoli diversi. Alla fine elencare in ordine solo i lati che appartengono a un solo triangolo. Intuitivamente io avrei fatto così.
Lavorare solo con l'area o solo con il perimetro porta a qualche incoveniente in alcuni casi particolari (vedi perimetri frastagliati per minimizzare l'area o aree troppo grandi per minimizzare il perimetro).
Ciao
Mirkolo è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 21:30   #18
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
ll calcolo dell' inviluppo convesso e' un problema noto e piu' che studiato.
Algoritmi per la sua soluzione si dovrebbero trovare in un comune testo di algoritmi (appunto) oppure, se uno e' pigro, su wikipedia
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Grazie a VLT è stata misurata dir...
Blue Origin annuncia un aerofreno ripieg...
Blue Origin annuncia una nuova versione ...
LG UltraFine evo 6K: il primo monitor al...
DJI cambia direzione: investe in Elegoo ...
Black Friday Narwal 2025: risparmi da ca...
Phishing evoluto contro Apple ID: caso f...
Prestazioni in discesa nei giochi? NVIDI...
Addio ai banner dei cookie? L'UE spinge ...
Le offerte Black Friday per gli smartpho...
Il controllo qualità degli iPhone...
Qualcomm Snapdragon X Elite vola con il ...
A2RL Season 2: storia, innovazione e sor...
Core Ultra Series 3: Intel conferma l'ev...
Black Friday Amazon: la GeForce RTX 5070...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v